Java Language Crea il tuo Iterable.

Esempio

Per creare il tuo Iterable come con qualsiasi interfaccia, devi semplicemente implementare i metodi astratti nell'interfaccia. Per Iterable c'è solo uno che è chiamato iterator() . Ma il suo tipo di ritorno Iterator è di per sé un'interfaccia con tre metodi astratti. Puoi restituire un iteratore associato ad alcune raccolte o creare la tua implementazione personalizzata:

public static class Alphabet implements Iterable<Character> {

    @Override
    public Iterator<Character> iterator() {
        return new Iterator<Character>() {
            char letter = 'a';

            @Override
            public boolean hasNext() {
                return letter <= 'z';
            }

            @Override
            public Character next() {
                return letter++;
            }

            @Override
            public void remove() {
                throw new UnsupportedOperationException("Doesn't make sense to remove a letter");
            }
        };
    }
}

Usare:

public static void main(String[] args) {
    for(char c : new Alphabet()) {
        System.out.println("c = " + c);
    }
}

Il nuovo Iterator dovrebbe avere uno stato che punta al primo elemento, ogni chiamata al successivo aggiorna il suo stato in modo che punti a quello successivo. hasNext() controlla se l'iteratore è alla fine. Se l'iteratore fosse collegato a una raccolta modificabile, il metodo remove() facoltativo dell'iteratore potrebbe essere implementato per rimuovere l'elemento attualmente indirizzato dalla raccolta sottostante.