【发布时间】:2013-07-22 15:45:23
【问题描述】:
我有一个重复值的地图:
("A", "1");
("B", "2");
("C", "2");
("D", "3");
("E", "3");
我想在地图上有
("A", "1");
("B", "2");
("D", "3");
你知道如何去除重复值吗?
目前,我收到“java.util.ConcurrentModificationException”错误。
谢谢。
public static void main(String[] args) {
HashMap<String, String> map = new HashMap<String, String>();
map.put("A", "1");
map.put("B", "2");
map.put("C", "2");
map.put("D", "3");
map.put("E", "3");
Set<String> keys = map.keySet(); // The set of keys in the map.
Iterator<String> keyIter = keys.iterator();
while (keyIter.hasNext()) {
String key = keyIter.next();
String value = map.get(key);
System.out.println(key + "\t" + value);
String nextValue = map.get(key);
if (value.equals(nextValue)) {
map.remove(key);
}
}
System.out.println(map);
}
【问题讨论】:
-
你为什么保留
B而忽略C?请记住,HashMap不会保持插入元素的顺序。 -
你能说出具体的要求吗?看起来你想要独特的价值。 HashMap 可以给你唯一的键。反转键和值对你来说就足够了吗?
-
@RohitJain +1 这就是问题!
标签: java hashmap duplicates