Czy ktoś może mi wyjaśnić, dlaczego jest określona metoda Iterator<E> iterator();
zdefiniowana w java.util.Collection
? Kolekcja już się rozszerza java.lang.Iterable
; ta metoda jest zbędna. Czy to dla wygody?Metoda iterator() zadeklarowana w java.util.Collection iw java.lang.Iterable, jej superinterfejs?
7
A
Odpowiedz
10
Obiekt został wprowadzony w języku Java 1.2 za pomocą interfejsu API kolekcji. Wówczas był obecny sposób iterator
. Jednak wersja Iterable
interface została wprowadzona dopiero w wersji Java 1.5. Powodem, dla którego Collection
jawnie definiuje się iterator
, jest to, że poprzedza on Iterable
. Pomysł na Collection
zwrócenie Iterator
poprzedza pomysł Iterable
.
OK, dlaczego nie został usunięty z kolekcji w java1.5? Czy nie jest kompatybilny z poprzednimi wersjami? –
Nie było powodu, aby usunąć go z 'Collection' podczas tworzenia' Collection' rozszerzyć nowy interfejs 'Iterable'. – rgettman
Przede wszystkim to mnie myli.)) –