我想結合兩個不同的hashmaps。但在這兩張地圖中,有一些重複的條目,所以我必須在合併後刪除這些重複的條目。java如何結合兩個hashmap沒有重複的條目
例如:
HashMap中1:
100你好
101很好
HashMap中2:
100你好
102良好
後結合的散列映射應該長相如:
100你好
101不錯
102好
我已經試過putall
,但看來它不會刪除重複的條目。 有人可以幫我快速做到這一點嗎?
我想結合兩個不同的hashmaps。但在這兩張地圖中,有一些重複的條目,所以我必須在合併後刪除這些重複的條目。java如何結合兩個hashmap沒有重複的條目
例如:
HashMap中1:
100你好
101很好
HashMap中2:
100你好
102良好
後結合的散列映射應該長相如:
100你好
101不錯
102好
我已經試過putall
,但看來它不會刪除重複的條目。 有人可以幫我快速做到這一點嗎?
我在您的方法中看不到問題。
HashMap<String, Object> first = new HashMap<String, Object>();
HashMap<String, Object> second = new HashMap<String, Object>();
first.put("100", "hello");
first.put("101", "nice");
second.put("100", "hello");
second.put("102", "good");
first.putAll(second);
System.out.println(first);
輸出
{102=good, 101=nice, 100=hello}
嘗試檢查,如果你的HashMaps這樣的處理是正確的。
HashMap
的密鑰不能重複,因爲它們表示在Set
中,所以合併這兩個圖應該可以完成這項工作。
您可以將兩個hashmap map1和map2添加到第三個hashmap map3,只需將value的輸入類型聲明爲Object,因爲所有數據類型都將其超類作爲Object類聲明。
HashMap<String, Integer> map1 = new HashMap<String, Integer>();
HashMap<String, String> map2 = new HashMap<String, String>();
HashMap<String, Object> map3;
map3 = new HashMap<>();
map3.putAll(map1);
map3.putAll(map2);
請問您可以使用您的代碼來發布您的代碼嗎? –
只是爲了表明'putAll'不是問題:http://ideone.com/CWMRDp –
HashMap不允許重複,但它使用equals方法來確定這一點。只能得出結論,你的鍵不是整數,但你沒有實現的一些其他對象是正確的。你必須告訴我們一個明確的答案。 – Radiodef