我有以下的Java代碼:Java匿名迭代器?
while (pOn[j].iterator().hasNext()) {
stats.decrement(getNodeCase((int) (pOn[j].iterator().next()), hidden, o));
}
目前,它不會終止。我懷疑這是因爲pOn [j] .iterator()每次都返回一個新的迭代器。有沒有辦法解決這個問題,而不是將迭代器分配給臨時變量?謝謝。
編輯:我不小心把這條線不應該在那裏。 pOn[j].iterator().next();
。我已經刪除它。
對於爲什麼不終止您是正確的。你爲什麼不想要一個臨時變量? –
每次調用'iterator()'時,都會創建一個* new *迭代器,它從第一個元素開始。不要這樣做。調用'iterator()'一次並將迭代器存儲在一個變量中。 – Jesper
如果您不想將迭代器分配給臨時變量,則可以嘗試保留一個計數變量並在計數完成後終止循環。 – CodeHunter