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

minha implementação

public static void main(String[] args) {

        Conta cc1 = new ContaCorrente(22, 33);
        Cliente clienteCC1 = new Cliente();
        clienteCC1.setNome("Nico");
        cc1.setTitular(clienteCC1);
        cc1.deposita(333.0);

        Conta cc2 = new ContaPoupanca(22, 44);
        Cliente clienteCC2 = new Cliente();
        clienteCC2.setNome("Guilherme");
        cc2.setTitular(clienteCC2);
        cc2.deposita(444.0);

        Conta cc3 = new ContaCorrente(22, 11);
        Cliente clienteCC3 = new Cliente();
        clienteCC3.setNome("Paulo");
        cc3.setTitular(clienteCC3);
        cc3.deposita(111.0);

        Conta cc4 = new ContaPoupanca(22, 22);
        Cliente clienteCC4 = new Cliente();
        clienteCC4.setNome("Ana");
        cc4.setTitular(clienteCC4);
        cc4.deposita(222.0);

        List<Conta> lista = new ArrayList<>();
        lista.add(cc1);
        lista.add(cc2);
        lista.add(cc3);
        lista.add(cc4);

        System.out.println("----ordem---");
        lista.forEach((t) -> System.out.println(t + ", Nome: " + t.getTitular().getNome()));

        System.out.println("---numero----");
        lista.sort((c1, c2) -> Integer.compare(c1.getNumero(), c2.getNumero()));
        lista.forEach((t) -> System.out.println(t + ", Nome: " + t.getTitular().getNome()));

        System.out.println("---nome----");
        Comparator<Conta> comp = (c1, c2) -> c1.getTitular().getNome().compareTo(c2.getTitular().getNome());
        lista.sort(comp);
        lista.forEach((t) -> System.out.println(t + ", Nome: " + t.getTitular().getNome()));        

        System.out.println("----saldo---");
        lista.sort((s1, s2) -> Double.compare(s1.getSaldo(), s2.getSaldo()));
        lista.forEach((t) -> System.out.println(t + ", Nome: " + t.getTitular().getNome() + ", Saldo: " + t.getSaldo()));

        System.out.println("-----numeroReverso---");
        lista.sort((n1, n2) -> Integer.compare(n2.getNumero(), n1.getNumero()));
        lista.forEach((t) -> System.out.println(t + ", Nome: " + t.getTitular().getNome()));
    }
2 respostas
solução!

Olá Amanda, tudo bem com você?

Muito legal sua implementação! É muito interessante como os recursos do Java 8 vieram para ajudar a diminuir a verbosidade do código e facilitar ainda mais a leitura do código Java, né? Os lambdas são um excelente exemplo disso agora dá pra fazer muita coisa com uma única linha!

Parabéns pela dedicação em praticar, a prática é essencial para fixar os conhecimentos teóricos adquiridos e se preparar para novos desafios! E lembre-se que você pode sempre contar com o fórum para compartilhar sua evolução e tirar suas dúvidas.

Um grande abraço e bons estudos!

É interessante como certos linguagens de programação evoluem e utilizam açúcar sintático pra nós os programadores, nos adaptar a eles. Como as lambdas no Java e Arrow Function no JavaScript sendo as duas similares.