Confundido sobre cómo funciona .next () en los iteradores de Java sin el uso de un bucle for

Creé una lista de cadenas en Java y quiero iterar a través de los elementos (nombres de animales) que agregué usando la clase de iterador. Me preguntaba por qué escribirlo manualmente.next () en el siguiente código no imprime los animales uno por uno y solo imprime el primer animal "Perro".

    public static void main(String[] args) {
        LinkedList<String> animals = new LinkedList<>();

        animals.add("Dog");
        animals.add("Cat");
        animals.add("Fox");
        animals.add("Rabbit");

        Iterator<String> it = animals.iterator();
        String animal1 = it.next();

        System.out.println(animal1);
        it.next();
        System.out.println(animal1);
        it.next()
        System.out.println(animal1);

}

El resultado que obtengo es:

Dog
Dog
Dog

¿Por qué no imprime todos los animales línea por línea? Me gusta esto:

Dog 
Cat
Fox
Rabbit
Respuesta 1

Estoy haciendo un programa que toma datos de un archivo y crea un juego de laberinto. Un ejemplo de archivo maze.txt se vería así: 5 5 P.XX. ...X. .XT .. ..X .. X .... Donde los dos números en la parte superior definen ...

Actualmente creando un código que usa 2 tipos de colas de prioridad como métodos separados, el código es similar entre los métodos, tratando de modularlos para que se conviertan en un solo método, pero el parámetro es ...

Tengo una JTable con tres columnas, cada una de las cuales está llena de una matriz hecha de una ArrayList. Estoy tratando de hacer un sistema de búsqueda, donde el usuario buscará un valor en la primera columna, y ...

Necesito poder crear calendarios personalizados que puedan omitir ciertos días festivos que especifico en la fecha establecida. Por ejemplo, podría necesitar crear un mapa con la fecha, pero solo quiero hacer un bucle ...