Design patterns                
            Образец итератора
        
        
            
    Поиск…
Образец итератора
Коллекции являются одной из наиболее часто используемых структур данных в разработке программного обеспечения. Коллекция - это всего лишь группа объектов. Коллекция может представлять собой список, массив, карту, дерево или что угодно. Таким образом, коллекция должна предоставить некоторый способ доступа к своим элементам без раскрытия ее внутренней структуры. Мы должны иметь возможность перемещаться по нему, независимо от типа коллекции.
Идея шаблона итератора состоит в том, чтобы взять на себя ответственность за доступ к объекту коллекции и поместить его в объект итератора. Объект итератора в обратном порядке будет поддерживать порядок итераций, сохранить дорожку текущего элемента и должен иметь способ получить следующий элемент.
 Обычно класс коллекции содержит две компоненты: сам класс и 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;
       }        
    }
}
