Поиск…


Образец итератора

Образец итератора

Коллекции являются одной из наиболее часто используемых структур данных в разработке программного обеспечения. Коллекция - это всего лишь группа объектов. Коллекция может представлять собой список, массив, карту, дерево или что угодно. Таким образом, коллекция должна предоставить некоторый способ доступа к своим элементам без раскрытия ее внутренней структуры. Мы должны иметь возможность перемещаться по нему, независимо от типа коллекции.

Идея шаблона итератора состоит в том, чтобы взять на себя ответственность за доступ к объекту коллекции и поместить его в объект итератора. Объект итератора в обратном порядке будет поддерживать порядок итераций, сохранить дорожку текущего элемента и должен иметь способ получить следующий элемент.

Обычно класс коллекции содержит две компоненты: сам класс и 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
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow