Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
0
respuestas

metod compareTo() sescion 04 ordenamiento de datos

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.