Я пытался создать очередность приоритетов, но, когда я ее протестировал, кажется, что есть некоторая несогласованность. Я перепробовал метод compareTo()
, но как-то он возвращает ученика с самым молодым возрастом. Почему это ? Разве это не студент с возрастом 22 (самый высокий)? Вот код:Реализация очереди приоритетов
public class Student implements Comparable<Student> {
private String name;
private int age;
public Student(int i) {
age = i;
}
public int getAge(){
return this.age;
}
public int print(){
return age;
}
@Override
public int compareTo(Student s) {
if(this.age < s.getAge()){return -1;}
else if(this.age > s.getAge()){return 1;}
else{return 0;}
}
public static void main(String[] args) {
Queue<Student> q = new PriorityQueue<Student>();
q.offer(new Student(21));
q.offer(new Student(18));
q.offer(new Student(22));
Student s = q.poll();
System.out.println(s.print());
}
спасибо, что это было очень полезно – user2326847