Java 迭代器接口方法hasNext()、next()、remove()在哪里定义?因为接口从不定义方法,只声明

Java 迭代器接口方法hasNext()、next()、remove()在哪里定义?因为接口从不定义方法,只声明,java,interface,iterator,polymorphism,Java,Interface,Iterator,Polymorphism,诸如hasNext()、next()、remove()等迭代器接口方法在哪里定义?接口不定义方法,只声明在其他类中定义的方法。如何通过迭代器引用直接访问hasnext()、next()等方法? 例如: List l = new LinkedList(); l.add(1); l.add(2); Iterator iter = l.iterator(); while(iter.hasNext()) { Object o = iter.next(); System.out.prin

诸如hasNext()、next()、remove()等迭代器接口方法在哪里定义?接口不定义方法,只声明在其他类中定义的方法。如何通过迭代器引用直接访问hasnext()、next()等方法? 例如:

List l = new LinkedList();
l.add(1);
l.add(2); 
Iterator iter = l.iterator();
while(iter.hasNext())
{
    Object o = iter.next();
    System.out.println(o);
}

在上面使用引用iter(迭代器引用)的示例中,我们可以在iter引用中指定任何方法吗?请给我一个有代码的例子。直到现在我才理解这个概念。

您知道,您可以通过查看java源代码(可以下载)或打印返回此处的迭代器类来找到答案


但更一般地说,这一点是抽象的。这里的设计器是专门设计的,因此您不必担心这些细节,如果您的问题是:LinkedList迭代器的实现在哪里,答案是: 它作为LinkedList类的私有内部类实现:

private class ListItr implements ListIterator<E> {
    private Node<E> lastReturned = null;
    private Node<E> next;
    private int nextIndex;
    private int expectedModCount = modCount;

    ...
}
私有类ListItr实现ListIterator{
私有节点lastReturned=null;
私有节点下一步;
私有int nextIndex;
private int expectedModCount=modCount;
...
}

说得很清楚,这些细节是故意对您隐藏的,这样您就不必担心它们,而且Java实现者以后可以在不同的实现中交换,而不会破坏任何用户。编辑拼写/语法/语法/缩进。