我有一个TreeMap,其中的值是TreeSet。现在,我需要遍历键,对于TreeSet的每个元素,我必须删除该元素(然后继续做一些事情),然后删除该TreeSet的第二个元素等等。
我试过:
for (Integer w : adjacencyList.get(keyNow)){
adjacencyList.get(keyNow).remove(w);
}这不管用,有人能帮忙吗?
发布于 2016-11-01 08:37:28
使用显式迭代器:
if (adjacencyList.containsKey(keyNow)) {
Iterator<Integer> iter = adjacencyList.get(keyNow).iterator();
while (iter.hasNext()) {
Integer w = iter.next();
iter.remove();
}
}发布于 2016-11-01 08:48:42
类似于@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.https://stackoverflow.com/questions/40356501
复制相似问题