compare与compareTo

来源:互联网 发布:淘宝旺旺买家 编辑:程序博客网 时间:2024/05/22 13:00

首先参考文章  关于comparator接口和comparable接口以及它们各自的方法compare()和compareTo()

举例靠参考    java中Collections.sort排序详解


1.利用comparable接口对对象排序


实现此接口的对象列表和数组可以用Collections.sort(),和Arrays.sort()进行自动排序;
也就是说,只要实现了这个接口的对象(数组)就相当于有了排序的能力,所以叫做comparable---可排序的,所以可以说这是一种内部排序的方式
compareTo(Object o)方法是java.lang.Comparable<T>接口中的方法,当需要对某个类的对象进行排序时,该类需要实现Comparable<T>接口的,
必须重写public int compareTo(T o)方法;




2.利用comparator接口实现排序
针对一些本身没有比较能力的对象(数组)为它们实现比较的功能,所以它叫做比较器,是一个外部的东西,通过它定义比较的方式,
再传到Collection.sort()和Arrays.sort()中对目标排序,而且通过自身的方法compare()定义比较的内容和结果的升降序

compare(Object o1,Object o2)方法是java.util.Comparator<T>接口的方法,它实际上用的是待比较对象的compareTo(Object o)方法。

//如果Person没有实现ComparableCollections.sort(list,new Comparator<Person>(){@Overridepublic int compare(Person o1, Person o2) {if (o1.getAge() > o2.getAge()) {return 1;}else if(o1.getAge() < o2.getAge()){return -1;}return 0;}        });




0 0
原创粉丝点击