Wie schreibe ich Code für das folgende Problem mit Java 8 Stream [Duplikat]

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

hm enthält Name und Alter der Mitarbeiter. So finden Sie die Namen aller Mitarbeiter, deren Alter> 25 Jahre ist, mithilfe des Java 8-Streams-Konzepts

Ich habe es so versucht

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

Könnte mich jemand korrigieren?

Antworten

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

Sie können nicht direkt über die Karte streamen. Sie können .entrySet()die Karte abrufen, nach Alter filtern und Namen in einer Liste sammeln.

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