¿Qué imprime esto?
List<String> names = List.of("Ana", "Bob", "Alicia", "Carl");
List<String> r = names.stream()
.filter(n -> n.startsWith("A"))
.map(String::toUpperCase)
.toList();
System.out.println(r);Opciones
- [Ana, Alicia]
- [ANA, ALICIA] (Opción correcta)
- [ANA, BOB, ALICIA, CARL]
- [A, A]
Respuesta
[ANA, ALICIA]
Por qué
Un Stream es un pipeline para procesar una colección: origen, luego pasos intermedios y luego un paso final (terminal).
filter conserva los nombres que empiezan por "A" (Ana, Alicia). map(String::toUpperCase) convierte cada uno a mayúsculas. toList() reúne el resultado.
La lista original no se modifica. n -> n.startsWith("A") es una lambda: una función anónima corta.
Recuerda
Stream = origen, operaciones intermedias (filter/map), operación terminal (toList/collect).