Advertisement
bozhilov

PriorityQueue Students O(n)

Mar 13th, 2022
170
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.57 KB | None | 0 0
  1. class Student {
  2.     protected
  3.     int id;
  4.     String name;
  5.     double cgpa;
  6.  
  7.     public Student(int id, String name, double cgpa) {
  8.         this.id = id;
  9.         this.name = name;
  10.         this.cgpa = cgpa;
  11.     }
  12.  
  13.     public int getID() {
  14.         return id;
  15.     }
  16.  
  17.     public String getName() {
  18.         return name;
  19.     }
  20.  
  21.     public double getCgpa() {
  22.         return cgpa;
  23.     }
  24. }
  25.  
  26. class Priorities {
  27.     public List < Student > getStudents(List < String > events) {
  28.        
  29.     PriorityQueue < Student > student_queue = new PriorityQueue(Comparator.comparing(Student::getCgpa).reversed().thenComparing(Student::getName).thenComparing(Student::getID));
  30.         List < Student > students = new ArrayList < Student > ();
  31.         for (String e: events) {
  32.             Scanner in =new Scanner(e);
  33.             String event = in.next();
  34.             if (event.equals("ENTER")) {
  35.                 String name = in.next();
  36.                 double cgpa = in.nextDouble();
  37.                 int id = in.nextInt();
  38.  
  39.                 Student student = new Student(id, name, cgpa);
  40.                 student_queue.add(student);
  41.             } else if (event.equals("SERVED")) {
  42.                 Student first = student_queue.poll();
  43.             } in .close();
  44.         }
  45.         Student first = student_queue.poll();
  46.         if (first == null) {
  47.             return students;
  48.         } else {
  49.             while (first != null) {
  50.                 students.add(first);
  51.                 first = student_queue.poll();
  52.             }
  53.             return students;
  54.         }
  55.  
  56.     }
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement