我需要迭代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,但它也没有用,因为它仅保留了参考.
有没有办法将迭代器复制到另一个或任何其他更好的方法?