import java.time.*;
import java.util.*;
enum Priority {HIGH, MEDIUM, LOW};
record Task(String description, LocalDate dueDate, Priority priority) { };
public class Main {
static Comparator<Task> priorityComparator = new Comparator<>() {
public int compare(Task t1, Task t2) {
return t1.priority().compareTo(t2.priority());
}
};
public static void main(String[] args) {
Queue<Task> priorityQueue = new PriorityQueue<>(20, priorityComparator);
priorityQueue.add(new Task("Doctor appointment", LocalDate.parse("2019-11-18"), Priority.MEDIUM));
priorityQueue.add(new Task("Birthday party", LocalDate.parse("2019-09-02"), Priority.HIGH));
priorityQueue.add(new Task("Book hotel", LocalDate.parse("2019-07-15"), Priority.MEDIUM));
Task nextTask = priorityQueue.poll(); // θα επιστρέψει το Task με Priority.HIGH
System.out.println(nextTask);
}
}