Mar*_*ace 6 java collections java-8 java-stream
我有一个Stream<Pair<String, String>> myStream;
,我想把它聚合成一个Map<String, Set<String>> result;
我设法达到以下目的:
Map<String, Set<Pair<String, String>>> result = myStream
.collect(Collectors.groupingBy(Pair::getKey, Collectors.toSet()));
Run Code Online (Sandbox Code Playgroud)
这失败了"无法从静态上下文引用非静态方法":
Map<String, Set<String>> result = myStream
.collect(Collectors.groupingBy(Pair::getKey, Pair::getValue, Collectors.toSet()));
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
正确的代码是:
Map<String, Set<String>> result = myStream
.collect(Collectors.groupingBy(Pair::getKey,
Collectors.mapping(Pair::getValue, Collectors.toSet())));
Run Code Online (Sandbox Code Playgroud)
如果使用import static
,则缩写为:
Map<String, Set<String>> result = myStream
.collect(groupingBy(Pair::getKey, mapping(Pair::getValue, toSet())));
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
101 次 |
最近记录: |