Sök…


Iteratormönstret

Iteratormönstret

Samlingar är en av de mest använda datastrukturerna inom programvaruteknik. En samling är bara en grupp objekt. En samling kan vara en lista, en matris, en karta, ett träd eller vad som helst. Så en samling bör ge något sätt att få åtkomst till dess element utan att avslöja dess interna struktur. Vi borde kunna korsa den i samma oavsett vilken typ av samling den är.

Idén med iteratormönstret är att ta ansvaret för att komma åt objektets samling och lägga den i ett iteratorobjekt. Iteratorobjektet i gengäld kommer att bibehålla iterationsordningen, hålla ett spår av aktuellt objekt och måste ha ett sätt att hämta nästa element.

Vanligtvis innehåller samlingsklassen två komponenter: själva klassen och det är 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
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow