2
respostas

Conseguiria usaro String.compareTo sem criar uma variável?

No exemplo do Comparator usando o Integer, estanciar direto no método lista.sort.

Seria possível fazer algo parecido com o método que usa String.compareTo? E inclui-lodireto no lista.sort?

Integer:

lista.sort((c1, c2) -> Integer.compare(c1.getNumero(), c2.getNumero()) );

String

 Comparator<Conta> comp = (c1, c2) -> {    
                String nomeTitularC1 = c1.getTitular().getNome();    
                String nomeTitularC2 = c2.getTitular().getNome();               
                return nomeTitularC1.compareTo(nomeTitularC2);

        };

        lista.sort(comp);
2 respostas

Oi Ana! É possível sim. Tenta dessa forma, por favor.

Collections.sort(comp, (c1, c2) -> c1.getTitular().getNome().compareToIgnoreCase(c2.getTitular().getNome()));

Aqui tem uma referência legal: https://stackoverflow.com/questions/2839137/how-to-use-comparator-in-java-to-sort

Oi Ana, consegui fazer dessa forma

1 - criando classe anonima:

 lista.sort(new Comparator<conta>() {

                            @Override
                            public int compare(conta c1, conta c2) {

                                return c1.getTitular().getNome().compareTo(c2.getTitular().getNome());
                            }


                        });

2- enxugando o código usando lambda :

lista.sort(( c1,  c2) ->  c1.getTitular().getNome().compareTo(c2.getTitular().getNome()) );