list转map list的key转为map的key
时间: 2023-11-03 10:03:20 浏览: 107
在将List转换为Map时,可以使用Java 8的Lambda表达式来处理重复的key。根据提供的引用内容,有三种处理重复key的方法:
1. 当key重复时直接使用后面的值(使用最新的或最老的值)。
```java
Map<String, Long> collect = enterpriseWechatRelations.stream()
.collect(Collectors.toMap(
EnterpriseWechatRelation::getExternalUserId,
EnterpriseWechatRelation::getUserId,
(val1, val2) -> val2)
);
```
2. 将两个值拼接起来作为key。
```java
Map<String, Long> collect = enterpriseWechatRelations.stream()
.collect(Collectors.toMap(
relation -> relation.getExternalUserId() + relation.getUserId(),
EnterpriseWechatRelation::getUserId)
);
```
3. 将重复key的value变成一个集合。
```java
Map<String, List<Long>> collect = enterpriseWechatRelations.stream()
.collect(Collectors.groupingBy(
EnterpriseWechatRelation::getExternalUserId,
Collectors.mapping(EnterpriseWechatRelation::getUserId, Collectors.toList()))
);
```
阅读全文