Szukaj…


Wzór iteratora

Wzór iteratora

Kolekcje są jedną z najczęściej używanych struktur danych w inżynierii oprogramowania. Kolekcja to tylko grupa obiektów. Kolekcja może być listą, tablicą, mapą, drzewem lub czymkolwiek. Kolekcja powinna więc zapewniać dostęp do swoich elementów bez ujawniania wewnętrznej struktury. Powinniśmy być w stanie przejść przez to samo, niezależnie od rodzaju kolekcji.

Ideą wzoru iteratora jest wzięcie odpowiedzialności za dostęp do obiektu kolekcji i umieszczenie go w obiekcie iteratora. W zamian obiekt iteratora zachowa kolejność iteracji, śledzi bieżący element i musi mieć sposób na pobranie następnego elementu.

Zwykle klasa kolekcji zawiera dwa składniki: samą klasę i 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
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow