簡體   English   中英

雙 forEach stream 過集和 hashmap Java

[英]double forEach stream over set and hashmap Java

我想編寫一個方法,從一個新集合中找到每天工作超過 8 小時的所有項目中的所有員工(對象)並返回該set

為此,我已經有一個project class ,其中包含每個員工的map作為鍵和他們每天工作的時間作為值。

在 class 中,我正在編寫方法,我有一個包含所有項目對象的集合項目。

是否可以使用功能接口/stream 來:

  • 迭代項目集

  • 然后為每個項目迭代和過濾(超過 8 個)map 中的所有值以及項目中的員工

  • 返還所有每天工作超過8小時的員工。

     public Set<Employee> getFulltimeEmployees() { Set<Employee> emp = projects.forEach(p -> p.getCommittedHoursPerDay().forEach()); return Set.of(); }

我有類似的東西,但我認為這不會奏效。 projects是所有Project objects的集合, getCommittedHoursPerDay()返回map ,其中Employee object作為key ,每天的工作時間作為value

我認為最簡單的方法是使用流。 下面的代碼流式傳輸所有項目,然后映射到 map 中的條目。 然后,它過濾所有小時數 > 8 的條目,並收集一組鍵(這會自動刪除重復項)。

projects.stream()
    .flatMap(p -> p.getCommittedHoursPerDay().entrySet().stream())
    .filter(e -> e.getValue() > 8)
    .map(Map.Entry::getKey)
    .collect(Collectors.toSet());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM