Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package Programming_Fundamentals.Objects_and_Classes.Objects_and_Classes_More_Exercise.E01CompanyRoster;
- import java.util.ArrayList;
- import java.util.Comparator;
- import java.util.List;
- import java.util.Scanner;
- import java.util.stream.Collectors;
- public class Main {
- public static void main(String[] args) {
- Scanner sc = new Scanner(System.in);
- int N = Integer.parseInt(sc.nextLine());
- List<Employee> employeeList = new ArrayList<>();
- double highestAverageSalary = 0;
- String bestDepartment = "";
- for (int i = 0; i < N; i++) {
- String[] employeeInfo = sc.nextLine().split("\\s+");
- String email;
- int age;
- if (employeeInfo.length == 4) {
- age = -1;
- email = "n/a";
- } else if (employeeInfo.length == 5) {
- try {
- email = "n/a";
- age = Integer.parseInt(employeeInfo[4]);
- } catch (Exception e) {
- email = employeeInfo[4];
- age = -1;
- }
- } else {
- email = employeeInfo[4];
- age = Integer.parseInt(employeeInfo[5]);
- }
- Employee employee = new Employee(employeeInfo[0], Double.parseDouble(employeeInfo[1]), employeeInfo[2], employeeInfo[3], email, age);
- employeeList.add(employee);
- }
- List<String> departmentsList =
- employeeList
- .stream()
- .map(Employee::getDepartment)
- .distinct()
- .collect(Collectors.toList());
- for (String department : departmentsList) {
- double sum = 0.0;
- int count = 0;
- for (Employee person : employeeList) {
- if (person.getDepartment().equals(department)) {
- sum += person.getSalary();
- count++;
- }
- }
- if (sum / count > highestAverageSalary) {
- highestAverageSalary = sum / count;
- bestDepartment = department;
- }
- }
- System.out.println("Highest Average Salary: " + bestDepartment);
- String finalDepartment = bestDepartment;
- employeeList
- .stream()
- .sorted(Comparator.comparingDouble(Employee::getSalary).reversed())
- .filter(employee -> employee.getDepartment().equals(finalDepartment))
- .forEach(System.out::println);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment