Boa Tarde!
Criei uma lista, e ordenei pelo metodo comparaTo() , mas nao entendi de que forma ele ordenou as Strings nomes, que criterio ele utilizou
Conta cc1 = new ContaCorrente(24); Cliente clienteCC1 = new Cliente(); clienteCC1.setnome("Nico"); cc1.settitular(clienteCC1); cc1.depositar(333.0);
Conta cc2 = new ContaPoupanca(23);
Cliente clienteCC2 = new Cliente();
clienteCC2.setnome("ana");
cc2.settitular(clienteCC2);
cc2.depositar(444.0);
Conta cc3 = new ContaCorrente(21);
Cliente clienteCC3 = new Cliente();
clienteCC3.setnome("Paulo");
cc3.settitular(clienteCC3);
cc3.depositar(111.0);
Conta cc4 = new ContaPoupanca(22);
Cliente clienteCC4 = new Cliente();
clienteCC4.setnome("Ana");
cc4.settitular(clienteCC4);
cc4.depositar(222.0);
List<Conta> lista = new ArrayList<>();
lista.add(cc1);
lista.add(cc2);
lista.add(cc3);
lista.add(cc4);
for (Conta conta : lista) {
System.out.println(conta + " , " + conta.gettitular().getnome() + " , " + conta.getSaldo());
}
lista.sort(new OrdenarString());
System.out.println("---------");
for (Conta conta : lista) {
System.out.println(conta + " , " + conta.gettitular().getnome() + " , " + conta.getSaldo());
}
}
class Ordenar String implements Comparator{
@Override
public int compare(Conta c1, Conta c2) {
String nomec1 = c1.gettitular().getnome();
String nomec2 = c2.gettitular().getnome();
return nomec1.compareTo(nomec2);
}
}
E a saída do meu código é a primeira sem ordenação som com o modo que foi inserido:
conta corrente metodo toString: 24 , Nico , 333.0
conta poupanca metodo toString: 23 , ana , 444.0
conta corrente metodo toString: 21 , Paulo , 111.0
conta poupanca metodo toString: 22 , Ana , 222.0
E na segunda com ordenação :
conta poupanca metodo toString: 22 , Ana , 222.0
conta corrente metodo toString: 24 , Nico , 333.0
conta corrente metodo toString: 21 , Paulo , 111.0
conta poupanca metodo toString: 23 , ana , 444.0
A a duvida é qual critério o método "compareTo()" usou para ordenar as String's?