仅当每个键在 map1 中具有唯一值时,我才坚持如何将键值对从 map1 传输到 map2。
假设我有以下地图:
- 地图1:[1,2] [2,4] [4,4]
- 地图2:[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;
}
我的想法是否应该在正确的轨道上完成?在这里很迷失。