我有两个HashMap
个对象定义为:
Map<String, String> requestParams = new HashMap<>();
Map<String, Boolean> requestParamForOauth = new HashMap<>();
如何合并这两张地图?
答案 0 :(得分:1)
假设两个地图都包含相同的一组键,并且您想要“组合”这些值,那么您要寻找的是一个Pair类,例如,请参阅here。
你只需迭代其中一张地图;并从两个地图中检索值;并创建一对;并将其推送到结果图中。
唯一的缺点是没有你可以使用的“官方”配对课程(请参阅here了解更多关于此事的想法)。
或者,如果这些“组合”值存在“更深层”的含义(超出简单的“元组/对”语义),您可以创建自己的包含这两个值的类。
答案 1 :(得分:0)
您的密钥属于同一类型(String),但这些值甚至不是由接口或超类相关,您需要定义Map<String, Object>
并使用Map#putAll
方法
Map<String, String> requestParams = new HashMap<>();
Map<String, Boolean> requestParamForOauth = new HashMap<>();
Map<String, Object> requestParamForOauth2 = new HashMap<>();
requestParamForOauth2.putAll(requestParams);
requestParamForOauth2.putAll(requestParamForOauth);
答案 2 :(得分:0)
如果您想使用一个列表来存储您可以的所有数据
使用一个HashMap<String,Object>
答案 3 :(得分:0)
当Map
同时显示相同的密钥时,您想要做什么?如果您想同时保留String
和Boolean
,那么您需要一张如下所示的地图:Map<String, Pair(String, Boolean)>
。如果您只想保留一个值,那么Map<String, Object>
就是您想要的。