-4

定義された「newsFeed」オブジェクトのヒープ配列を使用して優先度付きキューを実装しています。これらのオブジェクトはすべて、String、「likes」のint、および「age」のintを持っています。ヒープは、各newsFeedオブジェクトが持つ「いいね」の数によって優先されますが、removeMaxを使用すると、そのために作成したremoveMaxReorderメソッドがnullポインターを返します。デバッグしているときに、これを回避し、基本的に配列を降順に並べ替えて、優先度付きキューのプロパティを維持するアルゴリズムを誰かが知っているかどうかを知りたいと思いました。newsFeedクラスを変更できないため、同等のメソッドを実装できません。そのため、多くのforループやステートメントを想像していarray[i].getLikesます>,<=

4

1 に答える 1

2

PriorityQueueクラスについて話しているのではなく、配列とArrayListのどちらについて話しているのかわかりませんが、元のクラスを変更せずにコンパレータを作成できるため、Comparableを実装する必要はありません。

あなたの説明のために、あなたは配列を逆ソートしたいように聞こえます(またはそれを降順でソートします)これを行うために私は使用します

NewsFeed[] newsFeed =
Arrays.sort(newsFeed, new MyDescendingPriorityOrderComparator());
于 2012-12-09T00:23:37.983 に答える