LoraOrliGeo

P7_Student Academy_Maps_Ex

Apr 15th, 2019
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.31 KB | None | 0 0
  1. package ex1_MapsLambdaStreamAPI_13March2019;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.LinkedHashMap;
  5. import java.util.List;
  6. import java.util.Map;
  7. import java.util.Scanner;
  8.  
  9. public class P7_StudentAcademy {
  10.     public static void main(String[] args) {
  11.         @SuppressWarnings("resource")
  12.  
  13.         Scanner sc = new Scanner(System.in);
  14.        
  15.         int n = Integer.parseInt(sc.nextLine());
  16.        
  17.         Map<String, List<Double>> academy = new LinkedHashMap<>();
  18.        
  19.         for (int i = 0; i < n; i++) {
  20.             String name = sc.nextLine();
  21.             Double grade = Double.parseDouble(sc.nextLine());
  22.            
  23.             if (!academy.containsKey(name)) {
  24.                 academy.put(name, new ArrayList<>());
  25.                 academy.get(name).add(grade);
  26.             } else {
  27.                 academy.get(name).add(grade);
  28.             }
  29.         }
  30.        
  31.         Map<String, Double> averageGrades = new LinkedHashMap<>();
  32.        
  33.         for (String name : academy.keySet()) {
  34.             double sum = 0;
  35.            
  36.             for (int i = 0; i < academy.get(name).size(); i++) {
  37.                 sum += academy.get(name).get(i);
  38.             }
  39.            
  40.             double average = sum / academy.get(name).size();
  41.            
  42.             if (average >= 4.50) {
  43.                 averageGrades.put(name, average);
  44.             }
  45.         }
  46.        
  47.         averageGrades.entrySet().stream()
  48.         .sorted(Map.Entry.<String, Double>comparingByValue().reversed())
  49.         .forEach(e -> System.out.println(String.format("%s -> %.2f", e.getKey(), e.getValue())));
  50.     }
  51. }
Add Comment
Please, Sign In to add comment