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

Como ordenar um Array Tipo de uma classe

public class BancoDados {

private Set banco = new HashSet<>(); // Uma sacola, onde os dados ficam aleatórios. private List ordemBanco = new ArrayList<>(banco); // transferindo para Array.

// Gostaria de ordenar a Lista "ordemBanco", mas infelizmente não estou //conseguindo por estar encapsulado. // Array com String sem problemas, na ordenação. // Mas quando usado a classe como um tipo, travei.

public List ordenaNomes() {

collections.sort (ordemBanco); // não rola. return ordemBanco.sort(); // }

public void matricula(Alunos aluno) {

this.banco.add(aluno); }

public Set getAlunos() {

return banco; }

}

2 respostas
solução!

Boa noite, Thiago! Como vai?

Nessa atividade o instrutor do curso mostra como fazer para ordenar listas de objetos complexos, como é o caso da sua lista!

Qualquer coisa é só falar!

Grande abraço e bons estudos!

Set e List são interfaces com operadores . Você não definiu o tipo ao chamar private Set banco nem private List ordemBanco

vamos considerar que o set Banco é do tipo Integer (números).

        Set<Integer> banco = new HashSet<>();
        banco.add(1337);
        banco.add(42);
        banco.add(13);
        banco.add(69);
        banco.add(1678);
        banco.add(4252);


        System.out.println(
                banco.stream().sorted(
                        (banco1, banco2) -> Integer.compare(banco1, banco2))
                    .collect(Collectors.toList())
                );

o Output é esse:

[13, 42, 69, 1337, 1678, 4252]

você pode colocar o system.out dentro de um método:

public List<Integer> bancosOrdenados(Set<Integer> bancos){
        return bancos.stream().sorted(
                (banco1, banco2) -> Integer.compare(banco1, banco2))
            .collect(Collectors.toList());

nesse caso o sysout ficaria só a invocação do método bancosOrdenados(banco)