Categorías
Design Patterns Stories

Patrón de diseño de Java: iterador

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 diseño de Java: estrategia

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.

Por Programación.Click

Más de 20 años programando en diferentes lenguajes de programación. Apasionado del code clean y el terminar lo que se empieza. ¿Programamos de verdad?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *