Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
1
respuesta

[Bug] TestOrdenarLista

** package bytebank.test;

import java.util.ArrayList; import java.util.Comparator;

import bytebank.modelo.*; import bytebank.modelo.Cuenta; import bytebank.modelo.CuentaCorriente;

public class TestOrdenarLista { public static void main(String[] args) {

    java.util.List<Cuenta> lista = new ArrayList<>();
    
    
    Cuenta cc1 = new CuentaCorriente(22, 33);
    Cliente clienteCC1 = new Cliente();
    clienteCC1.setNombre("Diego");
    cc1.setTitular(clienteCC1);
    cc1.deposita(333.0);
    
    Cuenta cc2 = new CuentaCorriente(22, 44);
    Cliente clienteCC2 = new Cliente();
    clienteCC2.setNombre("Renato");
    cc2.setTitular(clienteCC2);
    cc2.deposita(444.0);
    
    Cuenta cc3 = new CuentaCorriente(22, 11);
    Cliente clienteCC3 = new Cliente();
    clienteCC1.setNombre("Liam");
    cc3.setTitular(clienteCC3);
    cc3.deposita(111.0);
    
    Cuenta cc4 = new CuentaCorriente(22, 22);
    Cliente clienteCC4 = new Cliente();
    clienteCC4.setNombre("Noel");
    cc4.setTitular(clienteCC4);
    cc4.deposita(222.0);
    
    lista.add(cc1);
    lista.add(cc2);
    lista.add(cc3);
    lista.add(cc4);
    
    System.out.println("Antes de ordenar");
    for (Cuenta cuenta : lista) {
        System.out.println(cuenta);
    }
    
    Comparator<Cuenta> comparator2 = new OrdenadorPorNombreTitular();
    lista.sort(comparator2);
    
    System.out.println("Despues de ordenar");
    for (Cuenta cuenta : lista) {
        System.out.println(cuenta);
    
    }
}

}

class OrdenadorNumeroPorNumeroCuenta implements Comparator{

@Override
public int compare(Cuenta o1, Cuenta o2) {
    if (o1.getNumero()== o2.getNumero()) {
        return 0;
    } else if (o1.getNumero()> o2.getNumero()) {
        return 1;
    } else {
        return -1;
    }
    
    
}

}

class OrdenadorPorNombreTitular implements Comparator{ @Override public int compare(Cuenta o1, Cuenta o2) { return o1.getTitular().getNombre().compareTo(o2.getTitular().getNombre()); } } **

![](Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad )

1 respuesta
solución!

Hola Marco,

Por lo que puedo ver en tu código, parece que hay un error de tipeo en la creación de la cuenta cc3. Estás configurando el nombre del clienteCC1 en lugar del clienteCC3. Aquí está el fragmento de código con el error:

Cuenta cc3 = new CuentaCorriente(22, 11);
Cliente clienteCC3 = new Cliente();
clienteCC1.setNombre("Liam"); // Aquí debería ser clienteCC3.setNombre("Liam");
cc3.setTitular(clienteCC3);
cc3.deposita(111.0);

Aquí está la corrección:

Cuenta cc3 = new CuentaCorriente(22, 11);
Cliente clienteCC3 = new Cliente();
clienteCC3.setNombre("Liam"); // Corrección aquí
cc3.setTitular(clienteCC3);
cc3.deposita(111.0);

Después de hacer esta corrección, deberías poder ordenar la lista de cuentas por el nombre del titular correctamente.

Espero haber ayudado y buenos estudios!