小编Ami*_*tsh的帖子

如何将迭代器复制到另一个迭代器?

我需要迭代for循环的每次迭代的值集,但只有第一次迭代才能正常工作.此后itr.hasNext()返回false.

Iterator<String> itr = getQuestionIterator(File file);

for(Person p : persons)
{
    while(itr.hasNext())
    {
        String question = itr.next();
        ........
        ........
    }
}
Run Code Online (Sandbox Code Playgroud)

这种行为对我来说很清楚.

一种解决方案可能是getQuestionIterator(File file)在for循环中调用方法,因此对于每个for循环迭代,它都会重新初始化.但这是非常低效的方法,因为它itr是独立的.

我尝试了这个Iterator<String> temp = itr,但它也没有用,因为它仅保留了参考.

有没有办法将迭代器复制到另一个或任何其他更好的方法?

java iterator

19
推荐指数
3
解决办法
1万
查看次数

标签 统计

iterator ×1

java ×1