- 第一种方法,Bean中实现Comparator接口
- public class CollectionsClass {
- /**
- * @param args
- */
- public static void main(String[] args) {
- List<BeanClass> list = new ArrayList<BeanClass>(); //BeanClass 需实现Comparable接口
- BeanClass bc1 = new BeanClass();
- BeanClass bc2 = new BeanClass();
- bc1.para = 1;
- bc2.para = 2;
- list.add(bc1);
- list.add(bc2);
- Collections.sort(list);
- System.out.println(list.get(0).para);
- System.out.println(list.get(1).para);
- }
- }
BeanClass类
- public class BeanClass implements Comparable<BeanClass>{
- int para;
- public int compareTo(BeanClass bc) {
- // return this.para - bc.para; //升序
- return bc.para-this.para; //降序
- }
- }
- public class CollectionsClass {
- /**
- * @param args
- */
- public static void main(String[] args) {
- List<BeanClass> list = new ArrayList<BeanClass>();
- BeanClass bc1 = new BeanClass();
- BeanClass bc2 = new BeanClass();
- bc1.para = 1;
- bc2.para = 2;
- list.add(bc1);
- list.add(bc2);
- Collections.sort(list,new MyComparator());
- System.out.println(list.get(0).para);
- System.out.println(list.get(1).para);
- }
- }
- public class MyComparator implements Comparator<BeanClass>{
- public int compare(BeanClass bc1, BeanClass bc2) {
- //return bc1.para-bc2.para; //升序
- return bc2.para-bc1.para; //降序
- }
- }
第三种,和第二种一样,不过使用匿名类
- public class CollectionsClass {
- /**
- * @param args
- */
- public static void main(String[] args) {
- List<BeanClass> list = new ArrayList<BeanClass>();
- BeanClass bc1 = new BeanClass();
- BeanClass bc2 = new BeanClass();
- bc1.para = 1;
- bc2.para = 2;
- list.add(bc1);
- list.add(bc2);
- Collections.sort(list,new Comparator<BeanClass>(){
- @Override
- public int compare(BeanClass o1, BeanClass o2) {
- return o1.para - o2.para; //升序
- return o2.para - o1.para; //降序
- }
- });
- System.out.println(list.get(0).para);
- System.out.println(list.get(1).para);
- }
- }
本文介绍了在Java中如何对集合进行排序的三种方法:通过实现Comparable接口、自定义Comparator比较器以及使用匿名内部类实现Comparator接口。文章通过示例代码详细解释了每种方法的实现过程及其应用场景。
3802

被折叠的 条评论
为什么被折叠?



