我知道您可以通过在创建的 ArrayList 上调用 iterator() 方法来获取它,但是该方法是什么样的?
由于Iterator只是Java中定义的一个接口(interface),我不知道ArrayList是如何传回Iterator的具体实现的?
我知道如何自己为自己的类实现这些...我想知道Java的ArrayList是如何做到的...也许标准库中有一个我不知道的具体迭代器类?
最佳答案
你自己就能找到
System.out.println(new ArrayList().iterator().getClass());
我得到了class java.util.ArrayList$Itr
,也许你也是这样。 $
符号表示内部类(静态或非静态)。如果我们进入源代码,我们就会看到
public Iterator<E> iterator() {
return new Itr();
}
以及此文件的后面
private class Itr implements Iterator<E> { ... }
关于java - Java 类 ArrayList 如何返回 Iterator 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26180592/