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

Metodo Comparator Java 8 não funciona neste Caso

Percebi que o metodo array.sort(Comparator.comparing(Objeto::variavel) não funciona quando a lista de objetos esta marcada como Collections.unmodifiableList(array);

o que fazer neste caso, ou estou fazendo algo errado. Tirei a linha Collections.unmodifiableList(aulas) para teste e dai funcionou normalmente.

import java.util.Collections;
import java.util.LinkedList;
import java.util.List;

public class Curso {
...
    public List<Aula> getAulas() {
        return Collections.unmodifiableList(aulas);
    }
...
}
public class TestaCurso {

    public static void main(String[] args) {
         Curso curso = new Curso("curso 1", "instrutor 1");
         curso.adiciona(new Aula("Aula 1",15));
         curso.adiciona(new Aula("Aula 2",18));
         curso.adiciona(new Aula("Aula 3",12));
         curso.adiciona(new Aula("Aula 4",19));
         curso.adiciona(new Aula("Aula 5",9));

         List<Aula> aulas = curso.getAulas();         

         aulas.sort(Comparator.comparing(Aula::getTempo));

         System.out.println(aulas);

    }

}
2 respostas
solução!

Fala aí Alexandre blz?

Então com uma coleção unmodifiable não tem como ordenar, pois para ordenar é preciso mudar o seu conteúdo.

Espero ter ajudado!

era o assunto da proxima aula... eu que fui curioso e fui testar, me antecipei sem saber Mas mesmo assim, obrigado!