我對Java還比較陌生,我發現自己一直在試圖正確編寫這段代碼,我覺得應該更簡單一些。比較兩張java地圖的關鍵和值
我有兩個地圖由同一個對象的兩個不同實例組成。鍵是對象,值是對象。
有兩個實例,因爲我試圖確定一個實例中的鍵是否與另一個實例中的鍵不同。我試圖專門定位新鍵或缺失鍵,然後比較兩個映射中存在的鍵的值。
下面的示例代碼只是爲了幫助可視什麼,我試圖做的(希望這不是更混亂!)
下面的示例的目標應該告訴我,「C」鍵丟失,有是一個新的鍵(「D」),然後它應該最終比較兩個映射中鍵的值。
主要問題是,有沒有辦法在一個循環中做到這一點?主要是因爲我的實際代碼會觸動文件系統在地圖的價值觀和我想它有觸摸盤
Map<objA, objB> mapA = new HashMap<objA, objB>();
mapA.put("A", "1");
mapA.put("B", "2");
mapA.put("C", "3");
Map<objA, objB> mapB = new HashMap<objA, objB>();
mapB.put("A", "1");
mapB.put("D", "4");
// Check if something is missing from mapB
for(Map.Entry<objA, objB> entryMapA:mapA.entrySet())
{
if(!mapB.containsKey(entryMapA.getKey())
{
System.out.println(entryMapA.getKey() + " is missing");
}
}
// Check if something is new is in mapB
for(Map.Entry<objA, objB> entryMapB:mapB.entrySet())
{
if(!mapA.containsKey(entryMapB.getKey())
{
System.out.println(entryMapB.getKey() + " is new");
}
}
這聽起來酷似[番石榴的'Maps.difference'(http://docs.guava-libraries.googlecode.com/git-history/release/的Javadoc/COM /谷歌/普通/收集/ Maps.html#差(java.util.Map,%20java.util.Map))。 –