我只是有一个关于迭代器的快速问题。
我目前想从两个对象列表中删除重复的项目。
我现在设置它的方式是,只要第二个列表(需要从第一个列表中删除的对象列表)有项目,执行合并的循环将继续运行。
我一直在使用该hasNext()
功能来检查是否还有物品,但我认为这可能存在小问题。
当迭代器指向列表中的最后一项并调用hasNext()
时,它将返回 false,因为在最后一项之后没有任何内容。这意味着该项目不会从第一个列表中删除。真的吗?
这是代码:
for (Iterator<Card> discardItr = discard.iterator(); discardItr.hasNext();)
{
Card tempDiscard = discardItr.next();
Iterator<Card> mixedItr = mixedHand.iterator();
while (mixedItr.hasNext())
{
if (tempDiscard.equals(mixedItr.next()))
{
discardItr.remove();
mixedItr.remove();
}
}
}