List的sort()方法通过改写compare()实现升序、降序
必须明确两点:
- compare(Integer e1, Integer e2){}返回的只有-1,0,1这些具体值,函数自己并不会对list进行排序。对list排序是因为有sort()对返回的值进行处理,规则为:1表示不交换位置,0表示相等时不交换,-1表示交换位置。
- compare(Integer e1, Integer e2){}中,e1代表的是List容器中的后一个元素,e2代表的是List容器中的前一个元素。
//实现Comparator进行降序排序
Collections.sort(list, new Comparator<Object>(){
@Override
public int compare(Object o1, Object o2) {
//升序排序 return ((Student) o1).getAge() - ((Student) o2).getAge();
return ((Student) o2).getAge() - ((Student) o1).getAge(