私の問題は次のようなものです:
私はTestQクラスを持っています
class TestQ{
public void main(String[] args){
PriorityQueue<Request> requestQ = new PriorityQueue<Request>(5, new SortRequest());
//...
}
}
私のRequestクラスには、ゲッターとセッターに加えて 2 つのフィールドがあります。
int siteId;
int timestamp;
そしてSortRequestクラスはこのようなものです
class SortRequest implements Comparator<Request>{
public int compare(Request r1, Request r2) {
return r1.getTimeStamp()-r2.getTimeStamp();
}
}
TestQクラスでは、siteId と Timestamp のユーザー入力を取得しています。制約は、siteId は一意である必要がありますが、タイムスタンプは同じでも異なっていてもかまいません。(たとえば、5 つのサイトの siteId は 1,2,3,4,5 です)。
タイムスタンプ値に基づいてリクエスト キューを並べ替えているためです。また、2 つ以上のサイトのタイムスタンプが等しい場合は、PriorityQueue が siteId に従って並べ替えて、低い siteId が高いサイトよりも優先されるようにする必要があります。私は期待されていません。助けてください。ありがとう。