desislava_topuzakova

02 -> Employees

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