Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

[Sugerencia] Contexto enunciado

En el enunciado se solicita: "En este contexto, debes filtrar a los clientes con cuenta corriente y ordenarlos considerando el saldo, en orden descendente, y luego mostrar los cinco clientes con el mayor saldo en cuenta."

Se indica que se debe mostrar el resultado, por tanto el Stream debe tener una operación terminal, como un forEach e imprimir el resultado. En los códigos de ejemplo ninguno cuenta con una operación terminal por lo tanto las lineas de código no hacen nada realmente.

1 respuesta

Hola Walter, espero que estés bien

Gracias por tu observación. Tienes toda la razón al señalar que para que el flujo (Stream) realice una acción visible, es necesario incluir una operación terminal, como forEach, que permita imprimir o procesar el resultado final.

En el contexto de tu ejercicio, después de filtrar y ordenar los clientes, deberías añadir una operación terminal para mostrar los resultados. Aquí tienes un ejemplo de cómo podrías hacerlo:

datosClientes.stream()
    .filter(c -> c.getTipoCuenta().equalsIgnoreCase("corriente"))
    .sorted(Comparator.comparingDouble(Cuenta::getSaldo).reversed())
    .limit(5)
    .forEach(cliente -> System.out.println(cliente));

Este código filtra los clientes con cuentas corrientes, los ordena por saldo de manera descendente, toma los cinco primeros y luego imprime cada uno de ellos. La operación forEach es la que hace que el Stream ejecute las operaciones previas y muestre los resultados.

Espero que esto aclare tu duda y te ayude a avanzar en el ejercicio. ¡Espero haber ayudado y buenos estudios!