Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

A classe Iterator apenas percorre os elementos de um Set, ou ela também imprime eles na ordem que foram adicionados?

public class TestaIteratorComAlunos {

    public static void main(String[] args) {

        Curso javaColecoes1 = new Curso("Usando Iterator como era antes do Java 5", "Paulo Silveira");

        Set<Aluno> alunos = javaColecoes1.getAlunos();
        Aluno a1 = new Aluno("Tom Jobim", 1111);
        Aluno a2 = new Aluno("Elis Regina", 1122);
        Aluno a3 = new Aluno("Vinicius de Moraes", 2222);
        Aluno a4 = new Aluno("Zelia Duncan", 2233);

        javaColecoes1.matricula(a1);
        javaColecoes1.matricula(a2);
        javaColecoes1.matricula(a3);
        javaColecoes1.matricula(a4);

        Iterator<Aluno> iterador = alunos.iterator();

        while (iterador.hasNext()) {
            System.out.println(iterador.next());

        }

    }

}

Peguei como exemplo a Atividade 4 da Aula 8 e criei uma nova classe com o código descrito acima. Pensei que realizando a iteração e percorrendo os elementos de um Set através da classe Iterator, eu poderia ter como reposta pelo console os elementos listados conforme foram adicionados, assim como no método forEach ou através do próprio foreach, mas isso não ocorreu. A classe Iterator serve apenas para "listar" e percorrer os elementos de um Set, ou eu teria feito algo de errado para eles não serem "listados" na ordem de inserção?

Agradeço a atenção!

2 respostas
solução!

A interface Set não fornece nenhuma garantia de ordem dos elementos inseridos. Se quiser garantir a ordem, você pode usar o LinkedHashSet

Entendi Otávio, obrigado pela sua resposta e atenção, é que tinha visto outro exemplo similar, ai coincidiu de ser usado a classe Interator e os elementos serem mostrados conforme a inserção deles, e vendo isso pensei que que sempre manteria a ordem que os elementos foram adicionados . Mas de qualquer forma obrigado pela ajuda!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software