我已经检查了jdk6和jdk7的java源代码API。在jdk7的ArrayList类中有一个私有的内部类,它实现了Iterator接口,但是在jdk6中没有这样的东西,甚至我没有找到返回Iterator实例的iterator()。
谁能在jdk7之前告诉我Iterator的实例是如何接收的,Iterator接口的方法是在哪里实现的?
发布于 2012-03-18 11:11:02
在Java6中,迭代器实现类是AbstractList类(ArrayList的超类)中的私有内部类。在源代码中搜索标识符Itr。
为什么Java 6和Java 7版本不同?好吧,Java 7源代码中的这条注释是一条重要线索:
777 /**
778 * An optimized version of AbstractList.Itr
779 */
780 private class Itr implements Iterator<E> {我将把这些优化的本质留给读者去研究。(阅读源代码Luke!)
发布于 2012-03-18 11:04:41
javadoc for ArrayList in JDK 6将iterator()显示为从AbstractList继承的东西。
https://stackoverflow.com/questions/9755616
复制相似问题