Jeśli masz ConcurrentMap
, można po prostu stworzyć strumień swoich wpisów, wywołując entrySet()
i następnie stream()
i utrzymać pozycje, w których wartość ma długość większą niż 4 przy zastosowaniu filter
. Na koniec można go ponownie zebrać w postaci ConcurrentMap
z wbudowanym Collectors.toConcurrentMap
.
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));
Alternatywnie, można to zrobić w miejscu, modyfikując mapę z
map.values().removeIf(l -> l.size() <= 4);
Co masz na myśli przez „filtr”? jakie są twoje kryteria filtrowania? proszę dodaj więcej informacji –