我有一个 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()));
失败并显示“无法从静态上下文引用非静态方法”:
Map<String, Set<String>> result = myStream
.collect(Collectors.groupingBy(Pair::getKey, Pair::getValue, Collectors.toSet()));
我做错了什么?
最佳答案
正确的代码是:
Map<String, Set<String>> result = myStream
.collect(Collectors.groupingBy(Pair::getKey,
Collectors.mapping(Pair::getValue, Collectors.toSet())));
如果你使用import static
,它被缩短为:
Map<String, Set<String>> result = myStream
.collect(groupingBy(Pair::getKey, mapping(Pair::getValue, toSet())));
关于java - 如何使用特定的键和值将流分组到 map ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54601823/