Java 类 ArrayList 如何返回迭代器对象? [英] How does the Java class ArrayList return an Iterator Object?

查看:54
本文介绍了Java 类 ArrayList 如何返回迭代器对象?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我知道您是通过调用您创建的 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 是如何实现的...也许标准库中有一个具体的 Iterator 类我不知道?

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?

推荐答案

自己找

System.out.println(new ArrayList().iterator().getClass());

我知道 class 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 如何返回迭代器对象?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆