1
resposta

Como é implementado os métodos hasNext() e next() ?

Minha dúvida é qual classe de fato implementa hasNext e next, fui caçando pelo debug mas me perdi kk. Aparentemente nesse caso é uma classe chamada LinkedList$ListItr queria entender mas sobre ela e sua classe privada Listitr.

package br.com.alura.collection.cap910;

import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;

public class TesteIterator {

    public static void main(String[] args) {

        List<String> letras = new LinkedList<>();
        letras.add("A");
        letras.add("B");
        letras.add("C");

        //novo
//        letras.forEach(letra -> {
//            System.out.println(letra);
//        });
        Iterator it = letras.iterator();
        while(it.hasNext()) {
            System.out.println(it.next());
        }

    }

}
1 resposta

Olá Jeandrew,

O método hasNext() e next() são implementados pela interface Iterator, que é implementada pela classe LinkedList$ListItr, que é uma classe interna privada da classe LinkedList.

O hasNext() é responsável por verificar se há um próximo elemento na lista e next() retorna o próximo elemento da lista.

A classe LinkedList$ListItr é responsável por implementar esses métodos e gerenciar o iterador da lista.

Espero ter ajudado e bons estudos!