Ricerca…


Il pattern Iterator

Il pattern Iterator

Le raccolte sono una delle strutture dati più comunemente utilizzate nell'ingegneria del software. Una collezione è solo un gruppo di oggetti. Una raccolta può essere una lista, una matrice, una mappa, un albero o altro. Quindi, una raccolta dovrebbe fornire un modo per accedere ai suoi elementi senza esporre la sua struttura interna. Dovremmo essere in grado di attraversarlo nello stesso modo indipendentemente dal tipo di collezione che è.

L'idea del modello iteratore è di assumersi la responsabilità di accedere all'oggetto di una raccolta e inserirla in un oggetto iteratore. L'oggetto iteratore in cambio manterrà l'ordine di iterazione, manterrà una traccia dell'elemento corrente e dovrà avere un modo per recuperare l'elemento successivo.

Di solito, la classe di raccolta contiene due componenti: la classe stessa, ed è Iterator .

public interface Iterator {
   public boolean hasNext();
   public Object next();
}

public class FruitsList {
    public String fruits[] = {"Banana", "Apple", "Pear", "Peach", "Blueberry"};

    public Iterator getIterator() {
       return new FruitIterator();
    }

    private class FruitIterator implements Iterator {
       int index;

       @Override
       public boolean hasNext() {
           return index < fruits.length;
       }

       @Override
       public Object next() {
   
          if(this.hasNext()) {
            return names[index++];
          }
          return null;
       }        
    }
}


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow