java - 使用java流,将两个具有相同键但不同值的映射合并到一个元组?
问题描述
我有两个具有以下数据类型的地图,
Map<Pair<Long,String>, List<String>> stringValues;
Map<Pair<Long,String>, List<Boolean>> booleanValues ;
我想将上面的地图合并到下面的数据结构中
Map<Pair<Long,String>, Pair<List<String>,List<Boolean>>> stringBoolValues;
我的输入有两个具有相同键但值不同的映射。我想将它们组合成一对。我可以使用 java 流来实现这一点吗?
解决方案
其他简单的方法是这样的:
stringValues.forEach((key, value) -> {
Pair<List<String>, List<Boolean>> pair = new Pair<>(value, booleanValues.get(key));
stringBoolValues.put(key, pair);
});
stringBoolValues = stringValues
.entrySet()
.stream()
.collect(Collectors.toMap(Map.Entry::getKey,
entry -> new Pair<>(entry.getValue(), booleanValues.get(entry.getKey()))));
试试这样:
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))));
推荐阅读
- java - 找不到带有 URI 错误的 HTTP 请求的映射?
- swift - 当我尝试在 Button(action: {}) 中键入 Text() 或 Image() 时,为什么会出现此错误?
- android - 如何定义变量以避免 Kotlin 中的“属性必须初始化或抽象”错误
- iis - IIS 错误 403 未记录并显示未知错误页面
- powershell - 从 Powershell 部署 Service Fabric 应用程序,无需 Service Fabric SDK
- python - 使用python从图形图像中提取数据点
- c - HAS_SUBNORM 和 __STDC_IEC_559__ 是否依赖?
- query-parameters - 如何在 Kong 的插件配置中引用查询参数?
- android - 使用带有 Kotlin 的 Camera API 进行相机控制
- yocto - 更新 yocto 上的自定义设备树