关于Collections.sort方法中匿名内部类Comparator.compare方法返回值问题详解
自定义排序 匿名内部类
void sort(List list, Comparator c)//定制排序,由Comparator控制排序逻辑
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
list.add(1);
list.add(12);
System.out.println(list);
Collections.sort(list, new Comparator<Integer>() {
/**
*
* @param o1 后面一位
* @param o2 前面一位
* @return - 返回值<0,交换两个元素位置
* - 返回值>=0,不变
* 所以:o1-o2:升序
* o2-o1:降序
*/
@Override
public int compare(Integer o1, Integer o2) {
System.out.println("o1="+o1);
System.out.println("o2="+o2);
return o2-o1;
}
});
System.out.println(list);
}
执行结果: