Почему поток карт сортируется после того, как фильтрация не работает?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Почему поток карт сортируется после того, как фильтрация не работает?

Сообщение Anonymous »

У меня есть карта Map. Я хочу отфильтровать и отсортировать карту по ключам, а затем получить 5 процентов от их количества. У меня есть такая функция:

Код: Выделить всё

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 печатаются нормально. Что я сделал не так?

Подробнее здесь: https://stackoverflow.com/questions/699 ... ot-working
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»