Iterator接口方法在哪里有hasNext(),next(),remove()定义? 因为接口永远不会定义方法只声明

Iterator接口方法在哪里定义了hasNext(),next(),remove()等? 接口不定义方法,只声明在其他类中定义的方法。 我们如何通过Iterator引用直接访问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(Iterator引用)可以在iter引用中分配任何方法吗? 请给我一个代码示例。 直到现在我才能理解这个概念。

如果你的问题是:LinkedList迭代器的实现在哪里,答案是:它被实现为LinkedList类的私有内部类:

 private class ListItr implements ListIterator { private Node lastReturned = null; private Node next; private int nextIndex; private int expectedModCount = modCount; ... } 

你知道你可以通过查看可以下载的java源代码自己找到答案,或者你可以打印出你在这里得到的迭代器的类。

但更一般地说,这一点就是抽象。 这里的设计师专门设计,因此您不必担心这些细节