TreeMap 的值为 TreeSet,如何从该 TreeSet 中删除元素?
TreeMap with as its value a TreeSet, how to remove element from this TreeSet?
我有一个 TreeMap,其中的值是 TreeSet。现在我需要遍历键,对于 TreeSet 的每个元素,我必须删除该元素(然后继续做某事),然后删除该 TreeSet 的第二个元素等。
我试过了:
for (Integer w : adjacencyList.get(keyNow)){
adjacencyList.get(keyNow).remove(w);
}
这不起作用,有人可以帮忙吗?
使用显式迭代器:
if (adjacencyList.containsKey(keyNow)) {
Iterator<Integer> iter = adjacencyList.get(keyNow).iterator();
while (iter.hasNext()) {
Integer w = iter.next();
iter.remove();
}
}
类似于@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.
我有一个 TreeMap,其中的值是 TreeSet。现在我需要遍历键,对于 TreeSet 的每个元素,我必须删除该元素(然后继续做某事),然后删除该 TreeSet 的第二个元素等。
我试过了:
for (Integer w : adjacencyList.get(keyNow)){
adjacencyList.get(keyNow).remove(w);
}
这不起作用,有人可以帮忙吗?
使用显式迭代器:
if (adjacencyList.containsKey(keyNow)) {
Iterator<Integer> iter = adjacencyList.get(keyNow).iterator();
while (iter.hasNext()) {
Integer w = iter.next();
iter.remove();
}
}
类似于@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.