您好,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 */ }
}
最佳答案
那么你可以调用普通的 iterator()
方法,然后多次调用 next()
:
public Iterator<E> iterator(int index) {
Iterator<E> iterator = iterator();
for (int i = 0; i < index && iterator.hasNext(); i++) {
iterator.next();
}
return iterator;
}
关于带有索引参数的java迭代器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30123981/