java - Java 类 ArrayList 如何返回 Iterator 对象?

标签 java arraylist iterator

我知道您可以通过在创建的 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/

相关文章:

java - 在循环内动态创建 ArrayList

java - 将带有 Intent 的数组发送到不同的包

java - JTree 未显示在 JScrollPane 上

java - 将 ASN1 包从标准 Java (JRE 1.5+) 迁移到 J2ME (CLDC 1.1)

java - 从子类的arraylist到达父类方法

c++ - Typedef vector 迭代器

c++ - 我可以将反向迭代器转换为正向迭代器吗?

scala - 迭代器上的Scala映射不会产生副作用

java - 在 Play 框架中防止多次登录网站

java - executeUpdate() 抛出 ArrayIndexOutOfBoundsException