rag*_*nkl 2 java stream java-8 java-stream
我有两个具有以下数据类型的地图,
Map<Pair<Long,String>, List<String>> stringValues;
Map<Pair<Long,String>, List<Boolean>> booleanValues ;
Run Code Online (Sandbox Code Playgroud)
我想将上述地图合并到以下数据结构
Map<Pair<Long,String>, Pair<List<String>,List<Boolean>>> stringBoolValues;
Run Code Online (Sandbox Code Playgroud)
我的输入有两个具有相同键但不同值的映射。我想将它们组合成一对。我可以使用 java 流来实现这一点吗?
另一个简单的方法是这样的:
stringValues.forEach((key, value) -> {
Pair<List<String>, List<Boolean>> pair = new Pair<>(value, booleanValues.get(key));
stringBoolValues.put(key, pair);
});
Run Code Online (Sandbox Code Playgroud)
stringBoolValues = stringValues
.entrySet()
.stream()
.collect(Collectors.toMap(Map.Entry::getKey,
entry -> new Pair<>(entry.getValue(), booleanValues.get(entry.getKey()))));
Run Code Online (Sandbox Code Playgroud)
像这样尝试:
Set<Pair<Long,String>> keys = new HashSet<>(stringValues.keySet());
keys.addAll(booleanValues.keySet());
keys.stream().collect(Collectors.toMap(key -> key,
key -> new Pair<>(stringValues.get(key), booleanValues.get(key))));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
627 次 |
| 最近记录: |