带有索引参数的java迭代器

标签 java linked-list iterator

您好,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/

相关文章:

c - 链接列表和结构

java - 大多数 Iterators 和 Iterables 方法都是 LAZY!这是什么意思

java - WebSockets如何识别二进制数据延续帧?

java - 不指定所有者类的 OneToMany

java - 使用 Java 代码访问 .NET dll 的方法

c++ - 如何返回 iterator_range

ruby-on-rails-3 - 如何在 Rails 中找到包含对象的数组的索引?

java - Test NG 中使用 Object[][] 类型数据提供者的函数应该接收什么样的参数?

c++ - 为什么我不能在 head 之后插入节点到 C++ 链表中?

c++ - 为链表实现选择排序