Filtrado de nombres que empiezan por 'M' usando expresiones lambda en Java
En este ejemplo, mostramos cómo utilizar expresiones lambda en Java para filtrar elementos de una lista. Empleamos la interfaz funcional Predicate para crear una condición que verifique si un nombre comienza por la letra "M". Usamos una lista de nombres y la convertimos en un flujo con stream(). Luego, aplicamos el filtro con la condición definida y mostramos por pantalla solo los nombres que cumplen ese criterio. Este enfoque funcional hace el código más limpio y fácil de mantener, y todos los pasos están explicados con comentarios dentro del código para facilitar su comprensión.
📎Crear y leer archivos en Java: ejemplo práctico paso a paso
package usoDelambda;
import java.util.ArrayList;
import java.util.List;
import java.util.function.Predicate;
public class FiltrarNombre {
public static void main(String[] args) {
// Creamos una lista con nombres:
List <String> nombres = new ArrayList<>();
// Añadimos los nombres a la lista.
nombres.add("Maria");
nombres.add("Pedro");
nombres.add("Lucia");
nombres.add("Sandra");
// Creamos una variable de tipo Predicate<String> llamada palabraEmpiezaPorM.
// Le asignamos una función lambda que recibe un parámetro llamado nombre.
// La función devuelve true si el nombre empieza por "M", y false en caso contrario.
// Predicate es una interfaz funcional que evalúa una condición y devuelve un booleano.
// Si se cumple se ejecuta el procedimiento.
Predicate<String> palabraEmpiezaPorM = nombre -> nombre.startsWith("M");
{
System.out.println("Los siguientes nombres empiezan por m");
// Convierte la lista nombres en un flujo (Stream) de tipo String.
// nombres es una List<String>.
// convierte esa lista en un objeto de tipo Stream<String>.
nombres.stream().
// Filtramos los nombres usando predicated
filter(palabraEmpiezaPorM). // Aplica el filtro si comienza por m
// Iteramos sobre cada elemento aplicando el filtro anterior.
// Imprime el nombre de aquello que empiezan por M, usamos 'Metodo referencia',
// el nombre del objeto::Nombre del método.
forEach(System.out::println);
}
}
}
Resultado:

Seguir leyendo:





