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!