我試圖刪除其值爲null
的所有條目。該代碼是:爲什麼map.vaules上的迭代器可以用來刪除HashMap#Entry?
Map<String, String> map = new HashMap<>();
map.put("one", null);
map.put("two", null);
map.put("three", "THREE");
Iterator iterator = map.values().iterator();
while (iterator.hasNext())
{
if (iterator.next() == null) {
iterator.remove();
}
}
for (Map.Entry<String, String> e : map.entrySet()) {
System.out.println(e.getKey() + ":" + e.getValue());
}
我的問題是iterator
被綁定到map.values
,爲什麼它可以刪除整個項目嗎?
只需確認一下,您的代碼就可以工作,但您試圖瞭解原因。正確? – shmosel
是的。我試圖找到根本原因。 – caisil