本人技术能力有限,如果说的不好,希望大家不要吐槽
升序排序
Collections.sort(list, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o1 - o2;
}
});
因为 Collections.sort 内部默认是升序排序的
代码解释:
情况1:
现在假设 o1等于9 ,o2等于10,那么o1 - o2<0,也就是 9-10<0, 意思就是:告诉比较器 o1<o2,也就是告诉比较器9<10,按照 Collections.sort 内部默认升序排序,小的排到前面,大的排到后面,所以排序后的结果就是,o1,o2,也就是 9,10
情况2:
现在假设o1等于10,o2等于9,那么 o1 - o2>0, 也就是 10-9>0,意思就是:告诉比较器o1>o2,也就是告诉比较器10>9,按照 Collections.sort 内部默认升序排序,小的排到前面,大的排到后面,所以排序后的结果就是,o2,o1,也就是 9,10
通过上面两种情况,就实现了升序排序
降序排序
Collections.sort(list, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o2 - o1;
}
});
代码解释:
情况1:
现在假设 o1等于9 ,o2等于10,那么o2 - o1>0,也就是 10-9>0, 意思就是:告诉比较器 o1>o2,也就是告诉比较器9>10,按照 Collections.sort 内部默认升序排序,小的排到前面,大的排到后面,所以排序后的结果就是,o2,o1,也就是 10,9
情况2:
现在假设o1等于10,o2等于9,那么 o2 - o1<0, 也就是 9-10<0,意思就是:告诉比较器o1<o2,也就是告诉比较器10<9,按照 Collections.sort 内部默认升序排序,小的排到前面,大的排到后面,所以排序后的结果就是,o1,o2,也就是 10,9
通过上面两种情况,就实现了降序排序