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引用中分配任何方法吗?请给我一个代码示例。直到现在我都无法理解这个概念。
答案 0 :(得分:4)
如果您的问题是:LinkedList迭代器的实现在哪里,答案是: 它被实现为LinkedList类的私有内部类:
private class ListItr implements ListIterator<E> {
private Node<E> lastReturned = null;
private Node<E> next;
private int nextIndex;
private int expectedModCount = modCount;
...
}
答案 1 :(得分:2)
你知道你可以通过查看可以下载的java源代码自己找到答案,或者你可以打印出你在这里找到的迭代器的类。
但更一般地说,这一点是抽象。这里的设计师专门设计,因此您不必担心这些细节