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

Dúvida sobre Collection x List

Uma boa tarde!

Estou com dúvida em relação as coleções. Pelo que entendi, a "List" é filha da "Collection". Logo, a mesma herda suas funcionalidades. Por que o código: " Collection alunosEmLista = new ArrayList<>(alunos);" retorna um erro no "Collections.sort" e "List alunosEmLista = new ArrayList<>(alunos);" retorna o que é desejado?

Segue o código.

package ex05_01_OpoderDosSets;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;

public class TestaAlunos {

    public static void main(String[] args) {

        Collection<String> alunos = new HashSet<>();
        alunos.add("Lucas");
        alunos.add("Pedro");
        alunos.add("Luiz");
        alunos.add("Junior");

        Boolean alunoEstaMatriculado = alunos.contains("Lucas ");
        System.out.println(alunoEstaMatriculado);

        alunos.forEach(System.out::println);

        // Apresenta erro no sort
        // Collection<String> alunosEmLista = new ArrayList<>(alunos);

        // Não apresenta erro no sort
        List<String> alunosEmLista = new ArrayList<>(alunos);

        Collections.sort(alunosEmLista);

        System.out.println(alunos);
    }
}

Grato.

2 respostas
solução!

Oi Maicon,

O método sort recebe uma List como argumento. Quando você declara a variável como sendo do tipo Collection, o método para de aceitar pq nem toda Collection é uma List.

Muito obrigado, Alberto!