public List getValuableSubStr(){
List result = new ArrayList();
long size = map.entrySet().stream().filter(e -> e.getKey().length() ==3).count();
map.entrySet().stream()
.filter(e -> e.getKey().length() ==3)
.sorted(Map.Entry.comparingByKey().reversed())
.limit((size*5)/100)
.peek(e -> result.add(e.getKey()));
return result;
}
Но после вызова функции получаю пустой список, хотя карта не пустая и forEach печатаются нормально. Что я сделал не так?
У меня есть карта Map. Я хочу отфильтровать и отсортировать карту по ключам, а затем получить 5 процентов от их количества. У меня есть такая функция: [code]public List getValuableSubStr(){ List result = new ArrayList(); long size = map.entrySet().stream().filter(e -> e.getKey().length() ==3).count(); map.entrySet().stream() .filter(e -> e.getKey().length() ==3) .sorted(Map.Entry.comparingByKey().reversed()) .limit((size*5)/100) .peek(e -> result.add(e.getKey())); return result;
} [/code] Но после вызова функции получаю пустой список, хотя карта не пустая и forEach печатаются нормально. Что я сделал не так?