<aside> 🔥
</aside>
Un Stream es una forma de decir: “Voy a leer los elementos de esta lista y aplicar una serie de pasos para sacar un resultado”.
List lista;
lista.stream()
.paso1(...)
.paso2(...)
.resultadoFinal(...);
List<String> lista = List.of("Italia","España","Portugal","Irlanda","Noruega");
lista.stream()
.filter(pais -> pais.endsWith("a")) // Me quedo con los paises que terminan en a
.sorted() // Ordeno los paises que han cumplido la condición anterior
.forEach(pais -> System.out.println(pais)); // Muestro por pantalla
Intermedias (preparan el trabajo, siguen siendo stream):
Finales / terminales (ejecutan y devuelven resultado):
Una lambda en Java es una forma corta de escribir una función (un trocito de código que recibe datos y devuelve algo, o ejecuta una acción) sin tener que crear una clase ni un método con nombre.
| Descripción | Lambda |
|---|---|
| Dado un n, devuelve true si n > 10 (si no, devuelve false). | n -> n > 10 |
| Dado un número n, devuelve true si n es negativo | n -> n < 0 |
| Dado un String s, devuelve el mismo texto en mayúsculas | s -> s.toUpperCase() |
| Quedarme con String cuya longitud sea > 5 | s -> s.length() > 5 |
| Convertir un número a su cuadrado | n -> n * n |
La expresión
n -> n > 10
equivale a la siguiente función
boolean test(Integer n) {
return n > 10;
}