我有一个TreeMap,其值为TreeSet。现在我需要遍历键,并且对于TreeSet的每个元素,我必须删除该元素(然后继续执行某些操作),然后删除该TreeSet的第二个元素等。
我试过了:
for (Integer w : adjacencyList.get(keyNow)){
adjacencyList.get(keyNow).remove(w);
}
这不起作用,有人可以帮忙吗?
答案 0 :(得分:3)
使用显式迭代器:
if (adjacencyList.containsKey(keyNow)) {
Iterator<Integer> iter = adjacencyList.get(keyNow).iterator();
while (iter.hasNext()) {
Integer w = iter.next();
iter.remove();
}
}
答案 1 :(得分:1)
与@ Eran的答案类似,但我会这样写。
Set<Integer> ints = adjacencyList.get(keyNow);
if (ints != null) {
for (Iterator<Integer> iter = ints.iterator(); iter.hasNext();) {
Integer w = iter.next();
// do something with w
iter.remove();
}
}
注意:如果您不需要检查每个值,则可以清除该组。
Set<Integer> ints = adjacencyList.get(keyNow);
if (ints != null)
ints.clear(); // remove all.