ストリームAPIの地図使用しますforeach

RituラジShrivastava:

私は、部門名と各部署で働く従業員の数を印刷したいです!

なぜストリームのforEachのが動作しませんか?

ArrayList<Employee> list = EmployeeRepository.myList;

public Double getTotalSalary(){

    return list.stream().map(e -> e.getSalary()).reduce(0.0,(s1,s2) -> s1+s2);
}

public void departmentNamesAndEmployeeCount(){
    list.stream().collect(Collectors.groupingBy(Employee::getDepartment,Collectors.counting())).forEach(hm -> system.out::println); /// Compilation Error on this Line.

}
YCF_L:

groupingBy返却Map<key, value>はforEachで地図を印刷するには、:

  1. 地図のあなたのケースでのforeach、取っBiConsumer2つのparamsキーと値を:
  2. あなたは、メソッドのリファレンスを使用することはできません::あなたがそうであるように、あなたは簡単なを使用する必要がありますprintln

あなたのコードは次のようになります。

.forEach((k, v) -> System.out.println(k + " " + v));

第一の方法ではgetTotalSalary、あなたは、単に実行します。

return list.stream()
        .mapToDouble(Employee::getSalary)
        .sum();

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=31534&siteId=1