Где интерфейс Iterator реализован в Java до jdk7 - PullRequest
0 голосов
/ 18 марта 2012

Я проверил java исходный API jdk6 и jdk7.Там в jdk7 ArrayList классе есть закрытый внутренний класс, который реализует интерфейс Iterator, но в jdk6 такого нет, даже я не нашел iterator(), который будет возвращать экземпляр Iterator.

Может кто-нибудь сказать мне до jdk7, как получен экземпляр Iterator и где реализованы методы интерфейса Iterator?

Ответы [ 2 ]

3 голосов
/ 18 марта 2012

В Java 6 класс реализации итератора является закрытым внутренним классом класса 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> {

Я предоставлю читателю возможность изучить природу этих оптимизаций. (Читай источник Люк!)

1 голос
/ 18 марта 2012

Javadoc для ArrayList в JDK 6 показывает iterator() как нечто, унаследованное от AbstractList.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...