2017-10-15 4 views
-1

私は従業員オブジェクトの配列を持っています。各従業員が名前、部署、給与などの詳細を持つ場所。私は部門ごとに印刷したいのですが、その部署で利用できる従業員の総数は何ですか?その部署の従業員の総給与は何ですか。コレクションモジュールのクラスとメソッドを使用して、このクラスを見つけることによって可能な限り最短の方法があります。複数の従業員オブジェクトを含むarraylistからの詳細を取得

+1

(フィルタリング等。)https://www.mkyong.com/java8/java-8-streams-filter-examples/ – Indent

+0

は、コードを記述していけません、代わりにそれを掲示して....そしてあなたはどんな問題を持っているのかを加えてください.... –

答えて

0

そうする方法はたくさんあります。例えば。ストリームを使用することができます:部門ごとにすべての要素をグループ化し、次に各部門の総給与をカウントします。

employees.stream() 
     .collect(Collectors.groupingBy(Employee::getDepartment, HashMap::new, 
       Collectors.mapping(Function.identity(), Collectors.toList()))) 
     .forEach((department, e) -> 
       System.out.format("Department: %s; employees amount: %d; total salary: %d", department, e.size(), e.stream().mapToInt(Employee::getSalary).sum())); 
あなたは(Javaの8以降)APIのストリームを使用することができます
関連する問題