再会。问题是如何从
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