我有一个链接列表,我需要创建在列表中给定点返回迭代器的方法。我目前有一个从头部开始的迭代器:
public Iterator<E> iterator( )
{
return new ListIterator();
}
我对另一件事的所有了解是:
public Iterator<E> iterator(int x )
{
return new ListIterator();
}
我不确定如何利用给定的位置(x),这不会影响从头部开始的 ListIterator 构造函数。
我尝试使用 for 循环到达“x”,但意识到这不会告诉迭代器从那里开始,所以我很困惑。
Edit:
public ListIterator()
{
current = head; // head in the enclosing list
}
在没有看到您的实现的情况下,执行此操作的简单方法是:
public Iterator<E> iterator(int x) {
if (x < 0 || this.size() < x) {
throw new IndexOutOfBoundsException();
}
Iterator<E> it = new ListIterator();
for (; x > 0; --x) {
it.next(); // ignore the first x values
}
return it;
}
否则,您可以遍历列表到第 x 个节点,但没有理由不能这样做。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)