java list<map>排序
时间: 2023-08-18 19:10:01 浏览: 47
你可以使用Collections.sort()方法来对List<Map>进行排序。首先,你需要传递一个比较器对象给Collections.sort()方法,该比较器对象将根据Map中的某个值进行排序。
下面是一个例子,假设你有一个List<Map<String, Object>>,其中每个Map对象都包含一个名为"age"的键值对。你可以按照"age"这个键的值来对List<Map<String, Object>>进行排序:
```
List<Map<String, Object>> list = new ArrayList<>();
Map<String, Object> map1 = new HashMap<>();
map1.put("name", "Alice");
map1.put("age", 25);
list.add(map1);
Map<String, Object> map2 = new HashMap<>();
map2.put("name", "Bob");
map2.put("age", 30);
list.add(map2);
Map<String, Object> map3 = new HashMap<>();
map3.put("name", "Charlie");
map3.put("age", 20);
list.add(map3);
Collections.sort(list, new Comparator<Map<String, Object>>() {
@Override
public int compare(Map<String, Object> o1, Map<String, Object> o2) {
int age1 = (int) o1.get("age");
int age2 = (int) o2.get("age");
return Integer.compare(age1, age2);
}
});
for (Map<String, Object> map : list) {
System.out.println(map.get("name") + " " + map.get("age"));
}
```
输出结果为:
```
Charlie 20
Alice 25
Bob 30
```
在上面的代码中,我们使用了一个匿名内部类来创建一个比较器对象。该比较器对象将根据Map中的"age"键的值进行排序。在compare()方法中,我们首先获取o1和o2中"age"键的值,然后使用Integer.compare()方法来比较这两个值。最后,我们将比较的结果作为返回值,告诉Collections.sort()方法如何排序。