使用Collections工具类对List集合进行排序
List<Map<String, Object>> list = new ArrayList<>();
for (int i = 1; i <= 4; i++) {
Map<String, Object> map = new HashMap<>();
map.put("age", 9 + i);
list.add(map);
}
List<Map<String, Object>> age = sort(list, "age");
for (Map<String, Object> map : age) {
System.out.print(map.get("age")+"============");
System.out.println(map.get("rank"));
}
public static List<Map<String, Object>> sort(List<Map<String, Object>> list, String param) {
Collections.sort(list, new Comparator<Map<String, Object>>() {
@Override
public int compare(Map<String, Object> o1, Map<String, Object> o2) {
if ((Integer) o1.get(param) > (Integer) o2.get(param)) {
return -1;
} else if ((Integer) o1.get(param) < (Integer) o2.get(param)) {
return 1;
} else {
return 0;
}
}
});
if (null != list && list.size() > 0) {
for (int i = 0; i < list.size(); i++) {
if(null!=list.get(i)) {
list.get(i).put("rank", i+1);
}
}
}
return list;
}
结果:
13============1
12============2
11============3
10============4

浙公网安备 33010602011771号