Comparator が物事をソートするためにどのソート手法を使用しているかを知りたいだけです。そして、compare()
このメソッドを明示的に呼び出さない場合でも、そのメソッドがどのように呼び出されるか。たとえば、クラスがあるとしましょう
class Person{
int age;
int personId;
//..getters and setters goes here
}
そして、私は別のクラスSortPersonを持っています
class SortPerson implements Comparator<Person>{
public int compare(){
//sorting logic goes here
//Assume that I am sorting according to person age.
}
}
私の Main クラスでは、PriorityQueue を使用しています
class Main{
public void main(...){
Queue<Person> q = new PriorityQueue<Person>(5, new SortPerson());
//q.add() and q.poll() operations goes here
}
}
では、適切な並べ替え順序を維持するために、追加操作とポーリング操作の実行中に Comparator がどのように呼び出されるのでしょうか? ありがとう。