Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.company;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.Comparator;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import java.util.Map.Entry;
- import java.util.Scanner;
- public class Main {
- public static void main(String[] args) {
- Scanner sc = new Scanner(System.in);
- int n = Integer.parseInt(sc.nextLine());
- Map<String, List<Double>> grades = new HashMap<>();
- while (n != 0) {
- String name = sc.nextLine();
- double grade = Double.parseDouble(sc.nextLine());
- if (grades.containsKey(name)) {
- grades.get(name).add(grade);
- } else {
- grades.put(name, new ArrayList<>(Arrays.asList(grade)));
- }
- n--;
- }
- grades.entrySet().stream().sorted(Entry.<String, List<Double>>comparingByValue((v1, v2) ->
- Double.compare(v2.stream().mapToDouble(Double::doubleValue).summaryStatistics().getAverage(),
- v1.stream().mapToDouble(Double::doubleValue).summaryStatistics().getAverage()))
- ).filter((k) -> k.getValue().stream().mapToDouble(Double::doubleValue).summaryStatistics().getAverage() >= 4.5)
- .forEachOrdered(p -> {
- System.out.printf("%s -> %.2f%n", p.getKey(), p.getValue().stream().mapToDouble(Double::doubleValue)
- .summaryStatistics().getAverage());
- });
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement