RGAlex

O7. Student Academy - v2

Mar 15th, 2021 (edited)
215
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.38 KB | None | 0 0
  1. package MapsLambdaStreamAPI.Exercise;
  2.  
  3. import java.util.*;
  4.  
  5. public class O7StudentAcademy {
  6.     public static void main(String[] args) {
  7.         Scanner scanner = new Scanner(System.in);
  8.  
  9.         Map<String, List<Double>> students = new LinkedHashMap<>();
  10.         int n = Integer.parseInt(scanner.nextLine());
  11.  
  12.         for (int i = 0; i < n; i++) {
  13.             String studentName = scanner.nextLine();
  14.             double grade = Double.parseDouble(scanner.nextLine());
  15.  
  16.             if (!students.containsKey(studentName)) {
  17.                 students.put(studentName, new ArrayList<>());
  18.                 students.get(studentName).add(grade);
  19.             } else {
  20.                 students.get(studentName).add(grade);
  21.             }
  22.         }
  23.  
  24.         Map<String, Double> averageGrade = new LinkedHashMap<>();
  25.  
  26.         for (Map.Entry<String, List<Double>> kvp : students.entrySet()) {
  27.             double average = kvp.getValue().stream().mapToDouble(x -> x).average().getAsDouble();
  28.             if (average >= 4.50) {
  29.                 averageGrade.put(kvp.getKey(), average);
  30.             }
  31.         }
  32.  
  33.         averageGrade.entrySet().stream()
  34.                 .sorted((g1, g2) -> g2.getValue().compareTo(g1.getValue()))
  35.                 .forEach(grade -> {
  36.                     System.out.println(String.format("%s -> %.2f", grade.getKey(), grade.getValue()));
  37.                 });
  38.     }
  39. }
Add Comment
Please, Sign In to add comment