Чтобы подсчитать количество сотрудников в каждом отделе из заданного списка сотрудников, можно использовать метод groupingBy().
Предположим, что у нас есть класс Employee, который содержит поля name и department. Для того чтобы подсчитать количество сотрудников в каждом отделе, можно использовать метод groupingBy() и передать ему функцию, которая принимает объект Employee и возвращает отдел, к которому он относится:
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class Employee {
private String name;
private String department;
public Employee(String name, String department) {
this.name = name;
this.department = department;
}
public String getName() {
return name;
}
public String getDepartment() {
return department;
}
}
public class Main {
public static void main(String[] args) {
List<Employee> employees = Arrays.asList(
new Employee("Alice", "HR"),
new Employee("Bob", "Marketing"),
new Employee("Charlie", "Finance"),
new Employee("David", "Marketing"),
new Employee("Eva", "HR"),
new Employee("Frank", "Finance")
);
Map<String, Long> employeeCountByDepartment =
employees.stream()
.collect(Collectors.groupingBy(Employee::getDepartment, Collectors.counting()));
System.out.println("Employee count by department: " + employeeCountByDepartment);
}
}
В этом примере мы создаем список employees, содержащий объекты класса Employee, заполняем его данными и затем используем метод groupingBy() для группировки сотрудников по отделам. Затем мы используем метод counting() для подсчета количества сотрудников в каждом отделе. Результатом является карта, в которой ключами являются отделы, а значениями - количество сотрудников.
Затем мы выводим эту карту в консоль. Обратите внимание, что для каждого отдела может быть несколько сотрудников.
1606 вопрос-ответ по Java: https://github.com/DEBAGanov/interview_questions
Tелеграмм канал: https://t.me/DEBAGanov
Мое резюме: https://github.com/DEBAGanov