如何在Java类的ArrayList返回一个Iterator对象? [英] How does the Java class ArrayList return an Iterator Object?
问题描述
我知道你通过调用您创建的ArrayList中的iterator()方法得到它,但到底是什么方法,什么样子的?
I know that you get it by calling the iterator() method on the ArrayList that you created, but what does that method look like?
由于的Iterator是只在Java定义的接口,我不知道该ArrayList如何传回的具体实现Iterator的?
Since Iterator is only an interface defined in Java, I am not sure how the ArrayList passes back a concrete implementation of the Iterator?
我知道如何实现这些我自己对我自己的课......我想知道Java的ArrayList中是怎么做的......也许有具体迭代器类标准库,我不知道?
I know how to implement these myself for my own classes...I want to know how Java's ArrayList does it...maybe there is a concrete Iterator Class in the standard Library I don't know about?
推荐答案
您可以找到它youself
You can find it out youself
System.out.println(new ArrayList().iterator().getClass());
我得到类java.util.ArrayList中的$ ITR
也许你。 $
标志意味着内部类(静态或不)。如果我们去里面源,我们会看到
I get class java.util.ArrayList$Itr
probably you too. $
sign mean inner class (static or not). And if we go inside source we'll see
public Iterator<E> iterator() {
return new Itr();
}
和本文件后面的
private class Itr implements Iterator<E> { ... }
这篇关于如何在Java类的ArrayList返回一个Iterator对象?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!