sort方法如何比较元素

2025-10-25 05:11:17

1、public class Dog implements Cloneable,Comparable<Dog> { 2  3     private String name; 4     private String age; 5      6     public String getName() { 7         return name; 8     } 9     public void setName(String name) {10         this.name = name;11     }12     public String getAge() {13         return age;14     }15     public void setAge(String age) {16         this.age = age;17     }18     public Dog(String name, String age) {19         super();20         this.name = name;21         this.age = age;22     }23   

sort方法如何比较元素

2、  public Dog() {24         super();25    }26    @Override27     public String toString() {28         return "Dog [name=" + name + ", age=" + age + "]";29    }30     31     public Object clone() throws CloneNotSupportedException {32         33         return super.clone();34    }35    @Override36     public int compareTo(Dog o) {37         38         return this.getName().compareTo(o.getName());39    }40 }

sort方法如何比较元素

3、测试类

1 public class Test { 2 3     public static void main(String[] args) { 4         List<Dog> list = new ArrayList<Dog>(); 5         Dog d1 = new Dog("cac", "11"); 6         Dog d2 = new Dog("bac", "11"); 7         Dog d3 = new Dog("aac", "11"); 8         Dog d4 = new Dog("eac", "11"); 9        list.add(d1);10        list.add(d2);11        list.add(d3);12        list.add(d4);13 //        MyCompare mc = new MyCompare();14 //        Collections.sort(list,mc);15        Collections.sort(list);16         for (Dog dog : list) {17            System.out.println(dog);18        }19         20    }21 }

sort方法如何比较元素

4、结果:

Dog [name=aac, age=11]Dog [name=bac, age=11]Dog [name=cac, age=11]Dog [name=eac, age=11]

自定义比较器,Collections.sort(List list,Comparator<T> compare),创建比较器类实现接口

1 public class Test { 2 3     public static void main(String[] args) { 4         List<Dog> list = new ArrayList<Dog>(); 5         Dog d1 = new Dog("cac", "11"); 6         Dog d2 = new Dog("bac", "11"); 7         Dog d3 = new Dog("aac", "11"); 8         Dog d4 = new Dog("eac", "11"); 9        list.add(d1);10        list.add(d2);11        list.add(d3);12        list.add(d4);13         MyCompa

sort方法如何比较元素

5、re mc = new MyCompare();14        Collections.sort(list,mc);15         for (Dog dog : list) {16            System.out.println(dog);17        }18         19    }20 }21 22 class MyCompare implements Comparator<Dog>{23 24    @Override25     public int compare(Dog d1, Dog d2) {26         String s1 = d1.getName();27         String s2 = d2.getName();28         if(s1.equals(s2))29             return 0;30         else {31             return s1.compareTo(s2);32        }33    }34 35 }

结果:

Dog [name=aac, age=11]Dog [name=bac, age=11]Dog [name=cac, age=11]Dog [name=eac, age=11]

sort方法如何比较元素

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢