Я отсортировал HashMap со следующими параметрами.Фильтрация определенных предметов с карты - Java8 StreamAPI
map.entrySet()
.stream()
.sorted(Map.Entry.comparingByValue(Collections.reverseOrder()))
.skip(1)
.limit(50)
.collect(Collectors.toMap(
Map.Entry::getKey,
Map.Entry::getValue,
(e1, e2) -> e1,
LinkedHashMap::new
));
То, что я хочу сделать, это фильтр некоторые результаты этого, предпочтительно с использованием .filter()
. Элементы, которые я хочу фильтровать, - ArrayList<String> filterUs;
Как это сделать?
Предположим, что я получил следующий результат после операции сортировки
{31795=11, 31790=11, 31876=10, 31803=9, 31792=8, 31877=8, 31851=8, 31845=8}
filterUs = [31790,31876]
Что я хочу получить: {31795=11, 31803=9, 31792=8, 31877=8, 31851=8, 31845=8, newItem=7, anotherNewItem=6}
Немного неясно. filterUs содержит * 31790 *, и результат, который вы хотите получить, содержит эту запись: * 31790 = 11 *. это что-то типа? Я думаю, что вы имели в виду: * filterUs = [31803,31876] * – Eugene