我被困在如何將map1中的鍵值對轉移到map2中(僅當每個鍵在map1中具有唯一值)。如何在地圖中刪除重複的鍵值對
比方說,我有以下地圖:
- MAP1:[1,2] [2,4] [4,4]
- MAP2:[1,2] [2,4]
我假設算法將是:
- 循環通過第一映射條目。
- 添加一個鍵到map2。
- 將值添加到一個檢查map2的值的集合
- 如果值重複,則該值不會添加到集合中,並忽略將其相應的鍵添加到map2。
代碼片段:
public static <K,V> Map<K,V> unique (Map<K,V> m) {
Map<K,V> newMap = new ArrayMap<K,V>();
//Remember all values in the newMap.
Set<V> holding = new ArraySet<V>(newMap.values());
for (Map.Entry<K, V> graphEntry : m.entries()) {
//not sure.
}
return newMap;
}
是我如何它應該在正確的軌道上進行想法?很遺憾在這裏。
是否要將map1中的對添加到map2並避免將map2中的值覆蓋? – svz
你可以發佈你的請求出鍋嗎? – elyashiv
爲什麼你的算法不生成map1的{1:2,4:4}?你爲什麼選擇'2'?這不重要嗎? – cheeken