有时候我们用arrays.sort或者collections.sort的时候我们需要重写比较器来按照我们想要的比较方式对某些元素进行比较或者排序,那么怎么重写比较器呢?下面给出方法
我们先定义一个Interval类:
public class Interval {
int start;
int end;
Interval() { start = 0; end = 0; }
Interval(int s, int e) { start = s; end = e; }
}
接下来对Interval按照start属性进行排序:(list1是一个包含Interval类的list)
Collections.sort(list1, new Comparator<Object>() {
public int compare(Object o1 ,Object o2) {
Interval x1=(Interval)o1,x2=(Interval)o2;
if(x1.start>x2.start)
return 1;
else if(x1.start==x2.start)
return 0;
else
return -1;
}
});