buena tarde, tengo un error en el ordenamiento de Cuenta x saldo, descendente (de mayor a menor) código del main.java
package com.alura.screenmatch.compareto;
import java.util.ArrayList;
import java.util.Comparator;
public class Main {
public static void main(String[] args) {
ArrayList<Cuenta> cuentas= new ArrayList<>();
cuentas.add(new Cuenta("Ana",125000));
cuentas.add(new Cuenta ("Hector",10000));
cuentas.add(new Cuenta("Beatriz", 385000));
cuentas.add(new Cuenta("Luis",185000));
cuentas.add(new Cuenta("Rene",400000));
cuentas.sort(Comparator.comparing(Cuenta::getSaldo));
System.out.println("lista cuentas descendente por Saldo ");
System.out.println(cuentas.toString());
}
}
y tengo el codigo de la clase Cuenta()
package com.alura.screenmatch.compareto;
public class Cuenta implements Comparable<Cuenta> {
private String titular;
private double saldo;
public Cuenta(String titular, double saldo) {
this.titular = titular;
this.saldo = saldo;
}
//getters y setters omitidos
public String getTitular() {
return titular;
}
public void setTitular(String titular) {
this.titular = titular;
}
public double getSaldo() {
return saldo;
}
public void setSaldo(double saldo) {
this.saldo = saldo;
}
@Override
public String toString() {
return "Cuenta "+getTitular()+" ,Saldo "+getSaldo()+"\n";
}
@Override
public int compareTo(Cuenta otraCta) {
return Double.compare(this.getSaldo(), otraCta.getSaldo());
}
}
No funciona ordenamiento descendente, como dice en una de las preguntas del cuestionario de ese modulo.
Dice que es la opción 1, ya probé con las otras opciones y tampoco
Tengo mal posicionado el compareTo(), o estoy utilizandolo mal.
Esta instrucción. return Double.compare(this.getSaldo(), otraCta.getSaldo());
la sugiere el IDE.
lista cuentas descendente por Saldo
[Cuenta Hector ,Saldo 10000.0
, Cuenta Ana ,Saldo 125000.0
, Cuenta Luis ,Saldo 185000.0
, Cuenta Beatriz ,Saldo 385000.0
, Cuenta Rene ,Saldo 400000.0
]
como se dan cuenta, sale ascendente.