stream流list转map重复key 取最大值
时间: 2023-07-05 20:09:59 浏览: 139
可以使用Java 8的Stream API,先将List转换为Map,然后使用merge方法解决重复key的问题,取最大值。示例代码如下:
```java
import java.util.*;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<Item> itemList = Arrays.asList(
new Item("key1", 10),
new Item("key2", 20),
new Item("key3", 30),
new Item("key1", 5),
new Item("key2", 15)
);
Map<String, Integer> resultMap = itemList.stream()
.collect(Collectors.toMap(
Item::getKey, // key映射函数
Item::getValue, // value映射函数
Integer::max // 解决重复key的方法,取最大值
));
System.out.println(resultMap); // 输出:{key1=10, key2=20, key3=30}
}
static class Item {
private String key;
private int value;
public Item(String key, int value) {
this.key = key;
this.value = value;
}
public String getKey() {
return key;
}
public int getValue() {
return value;
}
}
}
```
阅读全文