遍历列表时将元素添加到列表中。(Java)

Iterator除了以外,您无法在修改集合时使用进行迭代Iterator.remove()

但是,如果使用listIterator()方法,该方法返回ListIterator,并对其进行迭代,则您还有更多要修改的选项。从javadoc中获取add()

新元素插入到隐式光标之前:…后续调用prevIoUs()将返回新元素

鉴于此,此代码应该可以将新元素设置为迭代中的下一个元素:

ListIterator<T> i;
i.add(e);
i.prevIoUs(); // returns e
i.prevIoUs(); // returns element before e, and e will be next

除了列表开始为空时,这将起作用,在这种情况下,将没有先前的元素。如果存在问题,则必须维护某种标志以指示这种情况。

我的问题是我想在遍历新元素的同时扩展一个包含新元素的列表,并且希望迭代器继续刚才添加的元素。

根据我的理解,ListIterator.add()会在列表中的当前元素之前而不是之后添加一个元素。是否可以通过其他方式实现这一目标?

你可能想看:
分享给朋友: