正文:
当我们在编程,特别是偏向底层或者涉及到排序或比较的功能的时候,就会经常遇到sort方法,它能满足一帮的排序或者简单的List<T>排序
但是当遇见复查的类型,例如List<Map<String,Object>>,像这种类型,如果想取其中的一个Key作为判断和排序的时候,我们就需要学会重写Sort()中的Comparato来实现我们的需求(这种方法能很快解决嵌套排序或者分层、树级的排序),示例如下:
//递归排序
private static void ReWriteSort(List<Map<String, Object>> obj) {
if (obj == null) return;//判空
obj.sort(new Comparator<Map<String, Object>>() {
@Override // 重写,从小到大排序
public int compare(Map<String, Object> o1, Map<String, Object> o2) {
Long num1 = Long.parseLong(o1.get("序号").toString());
Long num2 = Long.parseLong(o2.get("序号").toString());
Long diff = num1 - num2;//通过两者的差来决定先后顺序
if (diff < 0) {
return -1;
} else if (diff > 0) {