use*_*966 12 java java-8 java-stream
我有以下课程:
class A {
private String id;
private String name;
private String systemid;
}
Run Code Online (Sandbox Code Playgroud)
我得到一组A并希望将其转换为密钥是系统ID的映射,并且值设置为A.(Map<String, Set<A>)可以有多个具有相同systemid的A实例.
似乎无法弄清楚该怎么做..直到这里,但身份显然是不对的
Map<String, Set<A>> sysUidToAMap = mySet.stream().collect(Collectors.toMap(A::getSystemID, Function.identity()));
Run Code Online (Sandbox Code Playgroud)
你能帮忙吗?
您可以使用groupingBy而不是toMap:
Map<String, Set<A>> sysUidToAMap =
mySet.stream()
.collect(Collectors.groupingBy(A::getSystemID,
Collectors.toSet()));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4680 次 |
| 最近记录: |