NavigableMap<Integer, Items> filter_result = map.entrySet().stream()
.filter( item -> item.getValue() < max)
.limit(size)
.collect(<???>);
Collector.of(
TreeMap::new,
(map, e) -> map.put(e.getKey, e.getValue()),
(left, right) -> {left.putAll(right); return left;}
EnumSet.of(Collector.Characteristics.UNORDERED, Collector.Characteristics.IDENTITY_FINISH))
NavigableMap<Integer, Items> result = new TreeMap<>();
...forEach(e -> result.put(e.getKey(), e.getValue())