Как собрать клавиш с нескольких карт из фильтрации потока?JAVA

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

Сообщение Anonymous »

Я пытаюсь научиться работать с потоками и сборщиками, знаю, как это делать с несколькими циклами for, но хочу стать более эффективным программистом.
В каждом проекте есть карта commitHoursPerDay, где ключ — это сотрудник, а значение — количество часов, выраженное целым числом. Я хочу просмотреть все карты commitHoursPerDay проекта и отфильтровать карты, где значение commitHoursPerDay больше 7 (полный рабочий день), и добавить в набор каждого сотрудника, который работает полный рабочий день.
Код на данный момент я написал следующее:

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

    public Set getFulltimeEmployees() {
// TODO
Map fulltimeEmployees = projects.stream().filter(p -> p.getCommittedHoursPerDay().entrySet()
.stream()
.filter(map -> map.getValue() >= 8)
.collect(Collectors.toMap(map -> map.getKey(), map -> map.getValue())));

return fulltimeEmployees.keySet();
}
однако фильтр распознает карту, потому что я могу получить доступ к ключу и значениям, но в .collect(Collectors.toMap()) он не распознает карту и видит ее только как лямбда аргумент
Изображение


Подробнее здесь: https://stackoverflow.com/questions/650 ... s-filtered
Ответить

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

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

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

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

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