比较两个不同hashasps的值,基于它们在java中的密钥
问题描述:
我有两个不同的hashmaps。现在我需要根据自己的keys.Like到包含HashMap比较,比较两个不同hashasps的值,基于它们在java中的密钥
HashMap1:
Key: BOF Value: SAPF,754
Key: BOM Value: SAPM,456
Key: BOL Value: SAPL,987
HashMap2:
Key: LOF Value: YTR,654
Key: BOL Value: UHG,732
现在我想在其“关键的是相同的,返回的第二折射率之间的差‘价值’字符串的包含HashMap所有这些条目比较[]
喜欢这里,它应该返回: 重点:BOL值:SAPL,255
(为987-732 = 255)
怎么办呢?
答
map.keySet()
将返回地图中的一组键。然后你必须从这两张地图中获得这个键的价值并找出差异。
Map<String, String[]> mp1 = //
Map<String, String[]> mp2 = //
Map<String, List<String>> res = new HashMap<>();
for (String key : mp1.keySet()) {
int val1 = Integer.valueOf(mp1.get(key)[1]);
int val2 = Integer.valueOf(mp2.get(key)[1]);
List<String> resVal = new ArrayList<>();
resVal.add(mp1.get(key)[0]);
resVal.add(String.valueOf(val1-val2));
res.put(key, resVal);
}
return res;
还有一件事,你有检查存在。否则,您将获得NullPointerException
迭代每个映射的Map.entrySet()以查找与该值对应的键。 –
迭代器和循环将帮助你 – VedX