intの束を格納するための単純なFIFO実装のキューが必要です(ジェネリックの実装であれば大したことはありません)。FIFOベースのキュー実装ですか?
java.util
またはTrove/Guavaライブラリで既に焼いているものはありますか?
intの束を格納するための単純なFIFO実装のキューが必要です(ジェネリックの実装であれば大したことはありません)。FIFOベースのキュー実装ですか?
java.util
またはTrove/Guavaライブラリで既に焼いているものはありますか?
はい。 Queue
LinkedListは、最も些細な具体的な実装である。
はいこれらはJavaに組み込まれています。ちょうど1つの例here。 Javaのキューについてgoogle検索をして、それはthatsです。
ArrayDeque
はおそらくJDKの中で最も速いオブジェクトベースのキューです。 TroveにはTIntQueue
インターフェイスがありますが、その実装がどこにあるのかわかりません。ここで
yeah TIntQueueはどこにも実装されていません。 –
'ArrayDeque'がスタック(LIFO)ではなくキュー(FIFO)として機能するためには、' add'と 'remove'を使うべきです。 'push'と' pop'を使うと、スタックとして動作します。 (厳密に言えば、 'remove'と' pop'は同じですが、 'add/pop'や' push/remove'はペアとしてよく発音しないので、 'add/remove'と' push/pop' 。) – ADTC
JavaのビルトインFIFOキューの使用のためのサンプルコードです:
public static void main(String[] args) {
Queue<Integer> myQ=new LinkedList<Integer>();
myQ.add(1);
myQ.add(6);
myQ.add(3);
System.out.println(myQ); //1 6 3
int first=myQ.poll();// retrieve and remove the first element
System.out.println(first);//1
System.out.println(myQ);//6 3
}
Queue
JavaでCollection
を拡張するインタフェースです。それはFIFO
アーキテクチャをサポートするために必要なすべての機能を備えています。
具体的な実装では、LinkedList
を使用できます。 LinkedListはを実装するDeque
を実装します。これらはすべてjava.util
パッケージの一部です。
例のメソッドの詳細については、FIFO based Queue implementation in Javaを参照してください。
Javadocにはすべての実装がリストされています。また、 'LinkedList'の上にある2番目のリンクは' LinkedList'の –
です。それは明示的なクラスです。代わりに、 'ArrayDeque'は頻繁に高速です。 –
いつでもキューのサイズを変更する必要はなく、elemntsの数は常に一定です。 –