LinkedList<String>
のサイズでConcurrentHashMap<String, LinkedList<String>>
をフィルタリングしようとしています。フィルタConcurrentHashMap値で
つまり、LinkedList<String>
のサイズがConcurrentHashMap
の要素を除外したいと思っています。Java 8でどのように処理するのですか?
LinkedList<String>
のサイズでConcurrentHashMap<String, LinkedList<String>>
をフィルタリングしようとしています。フィルタConcurrentHashMap値で
つまり、LinkedList<String>
のサイズがConcurrentHashMap
の要素を除外したいと思っています。Java 8でどのように処理するのですか?
あなたはConcurrentMap
を持っている場合は、単にentrySet()
、その後stream()
を呼び出すことによって、そのエントリのストリームを作成し、filter
を適用することによって値が4よりも大きい長さを持つエントリを保つことができます。最後に、Collectors.toConcurrentMap
が組み込まれたConcurrentMap
に再び収集することができます。
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));
代わりに、あなたは「フィルター」によって何を意味
map.values().removeIf(l -> l.size() <= 4);
ありがとう、その作品。 1つのマイナーな修正 - 'Map
でマップを変更することによって、その場でそれを行うだろうか?あなたのフィルター基準は何ですか?より多くの情報を追加してください –