現在、私はaddFirst
とremoveFirst
の3つのコマンドでスタックとして使用する文字列またはintの3つのリンクされたリストを持つクラスを持っています。 (下に再現されるクラス)LinkedListを優先度キューに変更する
クラスをプライオリティキューとして代わりに使用する機能を追加したいと考えています。私は優先キューがであることを知っているので、insertWithPriority
とremoveNext
を追加する簡単な方法を探しています。
代わりに、3つのlinkedListsのクラスを3つのpriorityQueuesに切り替えるのが直感的なオプションですが、私はJavaで優先度キューを使用する方法を少し混乱させています。 具体的にはの場合、removeNextがinsertWithPriority
で追加された同じ3つの要素を削除するように、すべての3が同じように機能するための優先順位が必要です。
誰かが適切なpriorityQueueを実装する方法についていくつかの光を当てることができますか?
class ThreeList{
public LinkedList foo;
public LinkedList bar;
public LinkedList etal;
public ThreeList(){
foo= new LinkedList();
bar= new LinkedList();
etal= new LinkedList();
}
public void addLast(String foo, int bar, int etal){
foo.addLast(foo);
bar.addLast(bar);
etal.addLast(etal);
}
public void addFirst(String foo, int bar, int etal){
foo.addFirst(foo);
bar.addFirst(bar);
etal.addFirst(etal);
}
public void removeFirst(){
foo.removeFirst();
bar.removeFirst();
etal.removeFirst();
}
public void removeLast(){
foo.removeLast();
bar.removeLast();
etal.removeLast();
}
}
次に、FooBar型の単一の優先度キューを作成し、add(オブジェクト)を使ってそれらをすべて追加し、poll()で最も優先度の高いオブジェクトを取得できますか? –
あなたはそれを持っています。 compareToがアイテムの実際の順序を反映していることを確認してください。 –
さて、私はそれを撃つだろう。最悪の場合、私は誤って逆優先度キューを作成します。 –