java - 当两种类型不同时如何将一个哈希映射的值放入另一个哈希映射
问题描述
地图 1:-
Map<String, List<Long>> prjReleaseMap = (Map<String, List<Long>>) configMap.get(PROJECTRELEASEMAP);
地图 2:-
Map<Long, List<Long>> newprjReleaseMap = new HashMap<>();
我想将地图 1 的值放在地图 2 中。
解决方案
如果您使用的是 Java 8,则可以使用:
Map<Long, List<Long>> newprjReleaseMap = prjReleaseMap.entrySet().stream()
.collect(Collectors.toMap(k -> Long.parseLong(k.getKey()), Map.Entry::getValue));
我假设所有的键都可以转换为 Long。
如果您只想获取密钥有效的条目,您可以使用过滤器,如下所示:
Map<Long, List<Long>> newprjReleaseMap = prjReleaseMap.entrySet().stream()
.filter(k -> checkKey(k.getKey()))
.collect(Collectors.toMap(k -> Long.parseLong(k.getKey()), Map.Entry::getValue));
...
public static boolean checkKey(String value) {
try {
Long.parseLong(value);
return true;
} catch (NumberFormatException e) {
return false;
}
}
推荐阅读
- java - Oracle SODA API for java - 异常 - 缺少右括号
- javascript - 如何提交带有其他表单内容的 innerHTML 输出
- javascript - 将“活动”类设置为当前滑块元素
- c# - 如何发送Linux中断信号?C#
- javascript - 无法替换 html 文本字段
- naming-conventions - 在蛇案例中处理数字的正确方法是什么?
- c# - 如何将 { opencv c++ } 代码集成到使用 c# 以统一 3D 开发的移动应用程序中
- php - 网址中的连字符时清除网址不起作用
- postgresql - 推迟物化视图的创建
- c# - 具有一种属性类型不同的相同类