比较两个不同的hashmaps的值,基于它们在java中的键

时间:2017-09-20 09:30:02

标签: java hashmap

我有两个不同的哈希图。现在我需要根据键来比较哈希图。喜欢,

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

现在我想比较'key'相同的哈希映射中的所有条目,并返回'values'的第二个索引之间的差异String []

就像这里它应该返回: 关键:BOL值:SAPL,255

(如987-732 = 255)

怎么做?

1 个答案:

答案 0 :(得分:0)

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