如果我有LinkedQueue
,有没有办法可以将当前对象的值设置为下一个对象,下一个对象'值到下一个对象......直到最后一个元素?
以下代码似乎无法解决此问题。
LinkedDeque<Example> queue = new LinkedDeque<Example>();
Iterator<Example> iterator = queue.iterator();
while (iterator.hasNext())
{
Example ex = iterator.next();
int x = ex.getX();
int y = ex.getY();
Example exNext = iterator.next();
exNext.set(x);
exNext.set(Y);
}
答案 0 :(得分:1)
每次调用iterator.next()
时,迭代器索引都会递增,因此您将一次在列表中移动两个对象。
尝试引入一个前一个变量,这样你只需每次迭代while循环调用iterator.next()
,如下所示:
LinkedDeque<Example> queue = new LinkedDeque<Example>();
Iterator<Example> iterator = queue.iterator();
if(iterator.hasNext()) {
Example prev = iterator.next();
while (iterator.hasNext())
{
int x = prev.getX();
int y = prev.getY();
Example exNext = iterator.next();
exNext.set(x);
exNext.set(Y);
prev = exNext;
}
}