Advertisement
desislava_topuzakova

02.CompanyRoster_Main

Oct 5th, 2020
913
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.50 KB | None | 0 0
  1. package CompanyRoster;
  2.  
  3. import java.util.Comparator;
  4. import java.util.HashMap;
  5. import java.util.Scanner;
  6.  
  7. public class Main {
  8.     public static void main(String[] args) {
  9.         Scanner scanner = new Scanner(System.in);
  10.  
  11.         HashMap<String, Department> departments = new HashMap<String, Department>(); //име на отдел -> ОТДЕЛ (име, служители)
  12.         int n = Integer.parseInt(scanner.nextLine());
  13.         for (int i = 0; i < n; i++) {
  14.             String [] input = scanner.nextLine().split("\\s+");
  15.             Employee employee;
  16.             String name = input[0];
  17.             double salary = Double.parseDouble(input[1]);
  18.             String position = input[2];
  19.             String department = input[3];
  20.             //6 parameters
  21.             if(input.length == 6) {
  22.                 String email = input[4];
  23.                 int age = Integer.parseInt(input[5]);
  24.                 employee = new Employee(name, salary, position,department, email, age);
  25.             }
  26.             //4 parameters
  27.             else if (input.length == 4) {
  28.                 employee = new Employee(name, salary, position, department);
  29.             }
  30.             //5 parameters
  31.             else {
  32.                 try {
  33.                     int age = Integer.parseInt(input[4]);
  34.                     employee = new Employee(name, salary, position, department, age);
  35.                 } catch (NumberFormatException e) {
  36.                     String email = input[4];
  37.                     employee = new Employee(name, salary, position, department, email);
  38.                 }
  39.             }
  40.  
  41.             //служителя -> отдел
  42.             departments.putIfAbsent(department, new Department(department)); //създаваме си нов отдел
  43.             departments.get(department).getEmployees().add(employee);
  44.  
  45.         }
  46.  
  47.         //име на отдела -> отдел (служители)
  48.         Department maxAverageSalaryDepartment  = departments.entrySet()
  49.                 .stream()
  50.                 .max(Comparator.comparingDouble(entry -> entry.getValue().getAverageSalary()))
  51.                 .get()
  52.                 .getValue();
  53.  
  54.         System.out.println("Highest Average Salary: " + maxAverageSalaryDepartment.getName());
  55.         maxAverageSalaryDepartment.getEmployees()
  56.                 .stream()
  57.                 .sorted((e1, e2) -> Double.compare(e2.getSalary(), e1.getSalary()))
  58.                 .forEach(employee -> System.out.println(employee.toString()));
  59.     }
  60. }
  61.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement