Nếu bạn có một ConcurrentMap
, bạn chỉ có thể tạo ra một dòng mục của nó, bằng cách gọi entrySet()
và sau đó stream()
và giữ các mục trong đó giá trị có chiều dài lớn hơn 4 bằng cách áp dụng một filter
. Cuối cùng, bạn có thể thu thập lại lần nữa vào một số ConcurrentMap
với số Collectors.toConcurrentMap
được tích hợp sẵn.
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));
Ngoài ra, bạn có thể làm điều đó tại chỗ bằng cách thay đổi bản đồ với
map.values().removeIf(l -> l.size() <= 4);
những gì bạn có nghĩa là bởi 'lọc'? tiêu chí lọc của bạn là gì? xin vui lòng thêm thông tin –