java list<map>根据map 中key 的值排序
时间: 2023-08-03 10:07:48 浏览: 82
在Java中,如果你有一个由Map组成的List,想要根据Map中的某个键对应的值进行排序,可以使用`Collections.sort()`方法结合自定义的`Comparator`来实现。
下面是一个示例,假设有一个由Map组成的List `myList`,其中每个Map都有一个键为`"key"`的值对,我们要根据这个键对应的值进行排序:
```java
List<Map<String, Integer>> myList = new ArrayList<>();
myList.add(Collections.singletonMap("key", 3));
myList.add(Collections.singletonMap("key", 1));
myList.add(Collections.singletonMap("key", 4));
myList.add(Collections.singletonMap("key", 2));
myList.add(Collections.singletonMap("key", 5));
Collections.sort(myList, Comparator.comparingInt(map -> map.get("key")));
System.out.println(myList);
```
输出结果:
```
[{key=1}, {key=2}, {key=3}, {key=4}, {key=5}]
```
在这个示例中,我们使用了`Comparator.comparingInt()`方法来创建一个比较器,根据Map中键为`"key"`的值进行排序。通过`map -> map.get("key")`的Lambda表达式来提取每个Map中键为`"key"`的值。
然后我们使用`Collections.sort()`方法对列表进行排序,传入列表和自定义的比较器作为参数。
希望对你有所帮助!如果还有其他问题,请随时提问。