我有以下的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