Wenn Sie eine ConcurrentMap
haben, können Sie einfach einen Strom seiner Einträge erstellen, durch den Aufruf entrySet()
und dann stream()
und die Einträge halten, wenn der Wert eine Länge von mehr als 4 hat durch eine filter
Anwendung. Schließlich können Sie das wieder in eine ConcurrentMap
mit dem eingebauten Collectors.toConcurrentMap
sammeln.
ConcurrentMap<String, LinkedList<String>> map = new ConcurrentHashMap<>();
ConcurrentMap<String, LinkedList<String>> result =
map.entrySet()
.stream()
.filter(e -> e.getValue().size() > 4)
.collect(Collectors.toConcurrentMap(Map.Entry::getKey, Map.Entry::getValue));
Alternativ könnten Sie es an Ort und Stelle tun, indem Sie die Karte mit
Modifizieren
map.values().removeIf(l -> l.size() <= 4);
was meinst du mit ‚Filter‘? Was sind Ihre Filterkriterien? Bitte fügen Sie weitere Informationen hinzu –