Хорошо, так что это все довольно продвинутые java вещи, и это будет довольно сложно объяснить за один раз, но я сделаю все возможное.
ПРЕДПОСЫЛКИ: Если вы не знаете о тех забавных <E>
вещи, вы должны немного изучить Java Generics.Кроме того, если вы этого еще не сделали, вам действительно нужно знать, что такое интерфейс.Один действительно базовый способ думать об этом - это обещанная функциональность, которую класс обещает предоставить.
Теперь, чтобы ответить на ваш вопрос: в приведенном выше фрагменте кода есть три интерфейса, и если вы хотите создать свойДля собственного класса коллекции вам необходимо предоставить реализации всех трех:
Первый - Collection
.Это простая концепция, которая отображается в реальном мире, это буквально «коллекция» объектов.Я думаю, вы получите это ...
Следующим является Iterable
, это определяет единый тип поведения, который должны обеспечивать все коллекции: способность обходить все элементы коллекции при доступе к нимодин за другим, т.е. "перебирать" их.Но это не останавливается там.Как вы указали, функциональность Iterable
предоставляется объектами, которые реализуют последний интерфейс:
Iterator
: объекты, которые реализуют этот интерфейс, фактически знают, как пройти элементы класса коллекции, они скрывают всеподробности о том, как это на самом деле сделано от их клиентов и доказали несколько простых и простых методов для этого, например, hasNext()
, который проверяет, есть ли в коллекции больше вещей для посещения, и next()
, который фактически посещает следующую вещь.
фу ...