本帖最后由 石头6004 于 2013-11-27 23:00 编辑
Comparable和Comparator 都是用来实现集合中的排序的,只是 Comparable 是在集合内部定义的方法实现的排序,Comparator 是在集合外部实现的排序,所以,如想实现排序,就需要在集合外定义 Comparator 接口的方法或在集合内实现 Comparable 接口的方法。Comparable 是一个对象本身就已经支持自比较所需要实现的接,而 Comparator 是一个专用的比较器,当这个对象不支持自比较或者自比较函数不能满足你的要求时,你可以写一个比较器来完成两个对象之间大小的比较。
下面是一段实现comparator 的代码:- public class Demo {
- comparator cl=new comparator();
- public static void main(String[] args) {
- Integer[] datas=new Integer[20];
- Random rand=new Random();
- for(int i=0;i<20;i++) {
- datas[i]=new Integer(rand.nextInt(100));
- }
- Arrays.sort(datas);
- System.out.println(Arrays.asList(datas));
- }
- }
- class comparator implements Comparator {
- public int compare(Object o1, Object o2) {
- int value1= Math.abs(((Integer)o1).intValue());
- int value2=Math.abs(((Integer)o2).intValue());
- return value1>value2?1:(value1==value2?0:-1);
- }
- }
复制代码
|