Saltar a contenido

Iterator, hashcode y equals

Iterator

Los iteradores permiten recorrer colecciones de elementos. Para utilizar un iterador tenemos que implementar la interface Iterator<E> de la API de Java. Se genera un objeto iterador que recorrerá una colección de objetos, sin importar el tipo de objetos que tenga almacenada esa colección.

Para poder hacer el recorrido, esta interface proporciona tres métodos:

Método Descripción
next() Pasa al siguiente elemento de la colección
rhasnext() Comprueba si hay o no un elemento siguiente en la colección.
remove() Elimina un elemento dentro de la colección.

A tener en cuenta

Hay ciertas operaciones para las cuales es más recomendable recorrer y manipular una colección mediante un iterador, mientras que para otras operaciones puede ser más conveniente un foreach.

public static void main(String[] args) {
    ArrayList<String> nombres = new ArrayList<>();
    String n = "";
    nombres.add("Luis");
    nombres.add("Berta");
    nombres.add("Rodrigo");
    nombres.add("Susana");
    Iterator<String> it = nombres.iterator();
    while(it.hasNext()){
        n = it.next();
        System.out.println(n);
    }
}

hashCode

El hashCode es un número que hace referencia a la localización de un objeto que tenemos almacenado en memoria (heap). Puede ser sobreescrito para adaptarlo a nuestras clases propias. Se implementa con el método hashCode().

Es decir, se puede utilizar el hashCode para saber si dos objetos son distintos.

Equals

El método equals() pertenece a la clase Object y funciona para las clases predefinidas en la API (String, Date,…). Sin embargo, puede ser necesario sobreescribirlo para adaptarlo a nuestras clases propias.