Advertisement
SvilenVelikov

Company Roster

Apr 25th, 2020
846
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.13 KB | None | 0 0
  1. package CompanyRoster;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.List;
  5. import java.util.Scanner;
  6.  
  7. public class Main {
  8.     public static void main(String[] args) {
  9.         Scanner sc = new Scanner(System.in);
  10.  
  11.         int n = Integer.parseInt(sc.nextLine());
  12.  
  13.         List<Employee> employeeList = new ArrayList<>();
  14.         for (int i = 0; i < n; i++) {
  15.             String[] token = sc.nextLine().split(" ");
  16.  
  17.             Employee personToAdd = new Employee(token[0], Double.parseDouble(token[1]), token[2], token[3]);
  18.             if (token.length == 5) {
  19.                 if (token[4].contains("@")) {
  20.                     personToAdd.setEmail(token[4]);
  21.                 } else {
  22.                     personToAdd.setAge(Integer.parseInt(token[4]));
  23.                 }
  24.             } else if (token.length == 6){ //length == 6
  25.                 personToAdd.setEmail(token[4]);
  26.                 personToAdd.setAge(Integer.parseInt(token[5]));
  27.             }
  28.  
  29.             employeeList.add(personToAdd);
  30.         }
  31.  
  32.         //отсяване на видовете Departments
  33.         List<String> howManyDepartments = new ArrayList<>();
  34.         for (Employee employee : employeeList) {
  35.             String currDepartment = employee.getDepartment();
  36.             if (!howManyDepartments.contains(currDepartment)) {
  37.                 howManyDepartments.add(currDepartment);
  38.             }
  39.         }
  40.  
  41.         //разпределяне на всеки един служител по отдел
  42.         List<Department> departmentList = new ArrayList<>();
  43.         for (int i = 0; i < howManyDepartments.size(); i++) {
  44.             List<Employee> currentDepartmentList = new ArrayList<>();
  45.             for (int j = 0; j < employeeList.size(); j++) {
  46.                 if (howManyDepartments.get(i).equals(employeeList.get(j).getDepartment())) {
  47.                     currentDepartmentList.add(employeeList.get(j));
  48.                 }
  49.             }
  50.  
  51.             Department newDepartment = new Department(howManyDepartments.get(i), currentDepartmentList);
  52.             departmentList.add(newDepartment);
  53.         }
  54.  
  55.         double maxAvrSalary = Double.MIN_VALUE;
  56.         int indexMaxAvrSalaryDepartment = -1;
  57.         for (int i = 0; i < departmentList.size(); i++) {
  58.             double curMaxAverageSalary = 0.0;
  59.             for (int j = 0; j < departmentList.get(i).getMembers().size(); j++) {
  60.                 curMaxAverageSalary += departmentList.get(i).getMembers().get(j).getSalary();
  61.             }
  62.             curMaxAverageSalary /= departmentList.get(i).getMembers().size();
  63.  
  64.             if (curMaxAverageSalary > maxAvrSalary) {
  65.                 maxAvrSalary = curMaxAverageSalary;
  66.                 indexMaxAvrSalaryDepartment = i;
  67.             }
  68.         }
  69.  
  70.         System.out.println("Highest Average Salary: " + departmentList.get(indexMaxAvrSalaryDepartment).getDepartmentType());
  71.  
  72.  
  73.         departmentList.get(indexMaxAvrSalaryDepartment).getMembers()
  74.                 .stream()
  75.                 .sorted((p1, p2) -> Double.compare(p2.getSalary(), p1.getSalary())) //сортира
  76.                 .forEach(p -> System.out.println(p));
  77.  
  78.  
  79.     }
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement