Найти тему
DEBAGanov

Java 567. Учитывая список служащих, найдите среднюю заработную плату служащих мужского и женского пола?

Вот пример кода на Java 8 для расчета средней заработной платы для мужчин и женщин в заданном списке сотрудников:

import java.util.*;
import java.util.stream.Collectors;

public class Main {
public static void main(String[] args) {
// создаем список сотрудников
List<Employee> employees = new ArrayList<>();
employees.add(new Employee("John", "Smith", "Male", 50000));
employees.add(new Employee("Jane", "Doe", "Female", 60000));
employees.add(new Employee("Bob", "Johnson", "Male", 70000));
employees.add(new Employee("Mary", "Williams", "Female", 80000));

// используем метод collect() для разделения списка на две группы по полу
Map<String, List<Employee>> genderMap = employees.stream().collect(Collectors.groupingBy(Employee::getGender));

// вычисляем среднюю заработную плату для мужчин и женщин Double maleAvgSalary = genderMap.get("Male").stream().mapToInt(Employee::getSalary).average().orElse(0.0);
Double femaleAvgSalary = genderMap.get("Female").stream().mapToInt(Employee::getSalary).average().orElse(0.0);

// выводим информацию о средней заработной плате для каждой группы
System.out.println("Average salary for males is " + maleAvgSalary);
System.out.println("Average salary for females is " + femaleAvgSalary);
}
}

class Employee {
private String firstName;
private String lastName;
private String gender;
private int salary;

public Employee(String firstName, String lastName, String gender, int salary) {
this.firstName = firstName;
this.lastName = lastName;
this.gender = gender;
this.salary = salary;
}

public String getFirstName() {
return firstName;
}

public String getLastName() {
return lastName;
}

public String getGender() {
return gender;
}

public int getSalary() {
return salary;
}
}

В этом примере мы используем метод collect() для разделения списка employees на две группы по полу: мужчины и женщины. Затем мы вычисляем среднюю заработную плату для каждой группы, используя методы mapToInt() и average(). Если список сотрудников для данной группы пуст, мы используем метод orElse(0.0) для возврата значения 0.

Наконец, мы выводим информацию о средней заработной плате для каждой группы.

1606 вопрос-ответ по Java: https://github.com/DEBAGanov/interview_questions

Tелеграмм канал: https://t.me/DEBAGanov

Мое резюме: https://github.com/DEBAGanov