【发布时间】:2015-07-19 09:05:11
【问题描述】:
您好,LinkedList 的普通迭代器如下所示,但是,我们如何构建一个返回从指定索引开始的迭代器的迭代器?我们如何构建:
public Iterator<E>iterator(int index)???
谢谢! 普通迭代器:
public Iterator<E> iterator( )
{
return new ListIterator();
}
private class ListIterator implements Iterator<E>
{
private Node current;
public ListIterator()
{
current = head; // head in the enclosing list
}
public boolean hasNext()
{
return current != null;
}
public E next()
{
E ret = current.item;
current = current.next;
return ret;
}
public void remove() { /* omitted because optional */ }
}
【问题讨论】:
-
如果您不打算在迭代时从
Colleciton中删除元素,您宁愿只使用传统的for循环。 -
LinkedList 有一个方法
listIterator(int)它完全符合您的要求。这里是link to docs
标签: java linked-list iterator