Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package students_grades;
- import javafx.util.Pair;
- import java.util.*;
- public class Main {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- int n = Integer.parseInt(scanner.nextLine());
- Map<String, List<Double>> students = new LinkedHashMap<>();
- for (int i = 0; i < n; i++) {
- String input = scanner.nextLine();
- double inputGrade = Double.parseDouble(scanner.nextLine());
- if (!students.containsKey(input)){
- students.put(input,new ArrayList<>());
- }
- students.get(input).add(inputGrade);
- }
- students.entrySet().stream()
- .map(e -> { //change the elements from Map.Entry<String, List<Double>> to Pair<String, Double>
- Double averageGrade = e.getValue().stream().mapToDouble(x -> x).average().getAsDouble();
- return new Pair<>(e.getKey(), averageGrade);
- }).filter(e -> e.getValue() >= 4.5) //remove all elements, which do NOT meet this criteria
- .sorted((e1, e2) -> e2.getValue().compareTo(e1.getValue())) //sort descending
- .forEach(e -> System.out.println(String.format("%s -> %.2f", e.getKey(), e.getValue()))); //print
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement