使用Clollections.sort排序有两种,无论那种,对对象进行排序时,都需要自己写排序函数。
排序函数返回值是一个整数。记住:这个整数要么为正,要么为负数,仅当两个值相等时才能为0。否则排序就失效了。
升序降序的确定如下:正的往后放,负的往前放。下面这个函数表示按照size的大小,从大到小排序
public int compareTo(Object o) {
// TODO Auto-generated method stub
Node arg=(Node)o;
// int rst=this.size-arg.getSize();
// return rst;
if(this.size>arg.getSize()){
return -1;
}
return 1;
}
如果两个值相等时,不返回零,jdk1.7就会报告如下异常;
Comparison method violates its general contract!
该异常原因以及解释参见:http://blog.2baxb.me/archives/993