再會。問題是如何從
Map集合中刪除元素。我正在嘗試解決另一個問題,但無法繼續,因為我不明白從集合中刪除的原理是什麼。這個想法是從集合中刪除相同的元素;比較是按值完成的。從第 8 級講座中我了解到「迭代器」就像是我們集合的連結。因此,我創建了 2 個這樣的鏈接,並透過比較集合中的元素,決定刪除此連結(物件)iterator2 引用的元素。解釋一下我為什麼做錯了。我真的很想明白我哪裡錯了。感謝所有願意回覆的人。 實現從集合中刪除的另一種選擇
for (Iterator
> iterator1 = map.entrySet().iterator(); iterator1.hasNext();){ HashMap.Entry
pair1 = iterator1.next(); for (Iterator
> iterator2 = map.entrySet().iterator(); iterator2.hasNext();) { HashMap.Entry
pair2 = iterator2.next(); if(pair1.getValue().equals(pair2.getValue())){ map.remove(pair2.getKey()); } } }
Iterator
> iterator1 = map.entrySet().iterator(); while(iterator1.hasNext()){ Map.Entry
pair1 = iterator1.next(); Iterator
> iterator2 = map.entrySet().iterator(); while(iterator2.hasNext()){ Map.Entry
pair2 = iterator2.next(); if (pair1.getValue().equals(pair2.getValue())){ iterator2.remove(); } } }
GO TO FULL VERSION