Cómo escribir código para el siguiente problema usando Java 8 stream [duplicado]

Oct 13 2020
Map<String,Integer> hm = new HashMap<>();

hm contiene el nombre y la edad de los empleados. Cómo encontrar los nombres de todos los empleados cuya edad> 25 usando el concepto de flujos de Java 8

Intenté así

hm.stream().filter(x->Map.Entry.getValue(x)>25).collect(collectors.toList());

¿Alguien podría corregirme?

Respuestas

1 Eklavya-UpvoteDon'tSayThanks Oct 13 2020 at 00:30

No se puede transmitir directamente a través de Map. Puede obtener .entrySet()el mapa, luego filtrar por edad y recopilar nombres en una lista.

List<String> list = hm.entrySet().stream()
                                 .filter(x -> x.getValue() > 25)
                                 .map(e -> e.getKey())
                                 .collect(Collectors.toList());