Qualcuno può spiegarmi perché il metodo Iterator<E> iterator();
è definito in java.util.Collection
? La raccolta si estende già java.lang.Iterable
; questo metodo è ridondante. È questo per comodità?Metodo iteratore() dichiarato in java.util.Collection e in java.lang.Iterable, la sua superinterfaccia?
7
A
risposta
10
Il Collection
interface è stato introdotto in Java 1.2 con l'API Collections. Il metodo iterator
era presente allora. Tuttavia, lo Iterable
interface non è stato introdotto fino a Java 1.5. La ragione per cui Collection
definisce esplicitamente iterator
perché è precedente a Iterable
. L'idea di un Collection
che restituisce un Iterator
precede l'idea di Iterable
.
Ok, perché non è stato rimosso dalla raccolta in java1.5? Non è retrocompatibile? –
Non c'era alcun motivo per rimuoverlo da 'Collection' quando si effettua' Collection' estendere la nuova interfaccia 'Iterable'. – rgettman
Prima di tutto mi confondono.)) –