java 一个map中取最大和第二大的两个value存到list中
时间: 2024-05-10 19:19:18 浏览: 113
详解Java8合并两个Map中元素的正确姿势
可以使用Java 8的Stream API来实现:
```java
Map<String, Integer> map = new HashMap<>();
map.put("a", 1);
map.put("b", 2);
map.put("c", 3);
map.put("d", 4);
List<Integer> list = map.values().stream()
.sorted(Comparator.reverseOrder())
.limit(2)
.collect(Collectors.toList());
System.out.println(list); // 输出 [4, 3]
```
首先,我们使用`map.values()`获取所有的值组成的Stream。然后,使用`sorted`方法对值进行降序排序。接着,使用`limit(2)`方法获取前两个值。最后,使用`collect`方法将结果收集到一个List中。
阅读全文