【发布时间】:2015-07-22 14:19:20
【问题描述】:
由于某种原因,这里的迭代器无法正常工作。我调试了代码,it1 有元素。但是,当谈到返回之前的行时,是空的。有什么提示吗?
private Tasks loadChangeStatusOnTasks(final Tasks updatedTasks, final List<Boolean> changeStatusList) {
final Iterator<Task> it1 = updatedTasks.getTasks().iterator();
final Iterator<Boolean> it2 = changeStatusList.iterator();
while(it1.hasNext() && it2.hasNext()) {
it1.next().setAssigneeChanged(it2.next().booleanValue());
}
final Tasks tasks = new Tasks(new ArrayList<TaskDTO>());
tasks.setTasks(IteratorUtils.toList(it1));
return tasks;
}
【问题讨论】:
-
一个迭代器只能迭代一次。
-
我们这里没有足够的信息来帮助您。首先,我们不知道
Tasks是什么。请展示一个简短但完整的程序来说明问题。 (njzk2的评估是正确的,但你应该原则上解决这个问题......) -
“空”是什么意思?你的意思是它已经走到了尽头?
it1.hasNext() == false?这是非常值得期待的。 -
感谢你们的帮助。我认为 njzk2 可能有钥匙。我将先尝试一下,我会稍微更新一下@JonSkeet 的代码。我不得不说很荣幸你看到了这段代码,很荣幸能和你聊天。你是开发者的榜样,我的朋友! ;-)
标签: java list oop collections iterator