Advertisement
IvaAnd

Ex07_StudentsAcademy

Jul 22nd, 2020
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.19 KB | None | 0 0
  1. import java.util.*;
  2.  
  3. public class Ex07_StudentsAcademy {
  4. public static void main(String[] args) {
  5. Scanner scanner = new Scanner(System.in);
  6.  
  7. Map<String, List<Double>> studentsGrades = new LinkedHashMap<>();
  8.  
  9. int countStudents = Integer.parseInt(scanner.nextLine());
  10.  
  11. for (int i = 0; i < countStudents; i++) {
  12. String studentName = scanner.next();
  13. double score = scanner.nextDouble();
  14.  
  15. studentsGrades.putIfAbsent(studentName, new ArrayList<>());
  16. studentsGrades.get(studentName).add(score);
  17.  
  18. }
  19.  
  20. Map<String, Double> toPrint = new LinkedHashMap<>();
  21. studentsGrades
  22. .entrySet()
  23. .forEach(student -> {
  24.  
  25. double result = student.getValue().stream().mapToDouble(Double::doubleValue).average().getAsDouble();
  26. if ( result >=4.5){
  27. toPrint.put(student.getKey(),result);
  28. }
  29. });
  30. toPrint
  31. .entrySet()
  32. .stream()
  33. .sorted((f, s) -> Double.compare(s.getValue(),f.getValue()))
  34. .forEach(student -> System.out.println(String.format("%s -> %.2f",student.getKey(), student.getValue())));
  35.  
  36.  
  37. /* studentsGrades.
  38. entrySet()
  39. .stream()
  40. .filter(student -> student.getValue()
  41. .stream()
  42. .mapToDouble(Double::doubleValue)
  43. .average().getAsDouble() >= 4.5)
  44. .sorted((student1, student2) -> {
  45. double first = student1.getValue().stream().mapToDouble(Double::doubleValue).average().getAsDouble();
  46. double second = student2.getValue().stream().mapToDouble(Double::doubleValue).average().getAsDouble();
  47. return Double.compare(second, first);
  48. })
  49. .forEach(student -> System.out.println(String.format("%s -> %.2f",
  50. student.getKey(),
  51. student.getValue().stream().mapToDouble(Double::doubleValue).average().getAsDouble()
  52. )));
  53. */
  54. }
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement