我只是有一個關於迭代器的快速問題。迭代器hasNext手段列表從不爲空
我當前想要從兩個對象列表中刪除重複項目。
我現在設置的方式是,只要第二個列表(需要從第一個列表中刪除的對象的列表)包含項目,合併的循環將繼續運行。
我一直在使用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();
}
}
}
'hasNext()'是真實的,如果(你當然會已經通過只是想它發現)並且只有在後續調用next()時纔會成功。 –
這是否意味着即使列表中還有一個項目,它會返回true?例如, 。 [1,2,3] 即使在最後一個項目3,它也會返回true嗎? –
你覺得,下一個()會給你最後一個元素嗎? –