El patrón de iterador se usa para iterar a través de una colección de objetos. Es un patrón de uso común, probablemente lo haya usado antes. Siempre que vea algo como hasNext () y next (), probablemente sea un patrón de iterador. Por ejemplo, puede recorrer una lista de registros de consultas de la base de datos.
Diagrama de clases de patrón de iterador
Código Java de patrón de iterador
interface IIterator{ public boolean hasNext(); public Object next(); } interface IContainer{ public IIterator createIterator(); } class RecordCollection implements IContainer{ private String recordArray[] = {"first","second","third","fourth","fifth"}; public IIterator createIterator(){ RecordIterator iterator = new RecordIterator(); return iterator; } private class RecordIterator implements IIterator{ private int index; public boolean hasNext(){ if (index < recordArray.length) return true; else return false; } public Object next(){ if (this.hasNext()) return recordArray[index++]; else return null; } } } public class TestIterator { public static void main(String[] args) { RecordCollection recordCollection = new RecordCollection(); IIterator iter = recordCollection.createIterator(); while(iter.hasNext()){ System.out.println(iter.next()); } } } |
Patrón de iterador utilizado en JDK
En el paquete java.util, la interfaz Iterator se define de la siguiente manera:
public interface Iterator<E> { boolean hasNext(); E next(); void remove(); } |
Luego están las clases que pueden crear un Iterador, por ejemplo, TreeSet # iterator (), HashSet # iterator (), etc.