答えて
Queue
リストのドキュメントの様々な実装は、あなたのニーズに合った実装を選択してください。
Javadocsは、Queue
を実装するクラスのリストを提供します。
既知の実装クラスの一覧:
AbstractQueue、ArrayBlockingQueue、ArrayDeque、ConcurrentLinkedQueue、DelayQueue、LinkedBlockingQueue、LinkedBlockingDeque、LinkedList、PriorityBlockingQueue、PriorityQueue、SynchronousQueue
いくつかのサブインターフェイスれもあります役に立つと分かるかもしれません:
既知のサブインタフェースの一覧:
BlockingDeque < E>、BlockingQueue < E>、Deque < E>
なぜ人々はJavaDocsに行っていけないのか不思議です:P +1 – Perpetualcoder
はGoogleよりも速くスタックオーバーフローですか? – IAdapter
本当に怠惰な人のために、DeQueを持つものはすべて両端キューです。 – Powerlord
キューは、複数の実装があります
すべて:APIから既知の実装クラス:
AbstractQueue, ArrayBlockingQueue, ArrayDeque, ConcurrentLinkedQueue,
DelayQueue, LinkedBlockingDeque, LinkedBlockingQueue, LinkedList,
PriorityBlockingQueue, PriorityQueue, SynchronousQueue
AbstractQueueは具体的なクラスではありません。
これらはパッケージのコンカレントからのものですので、ジョブキューなどを実装している場合は、ConcurrentLinkedQueueまたはPriorityBlockingQueue(ヒープ用)に移動してください。
http://java.sun.com/javase/6/docs/api/java/util/Queue.html - 「すべての既知の実装クラス」を参照してください。さまざまな目的に適したさまざまな実装があります。
「すべての既知の実装クラス」を見つけるためにAPIドキュメントを使用するだけでなく、公開APIを介して利用できる他の非public実装もあります(無意味なドキュメントを必要としません)。 "use"をクリックした場合、Collections.asLifoQueue(Deque
は既にQueue
ですが、スタックではなくFIFOです)。
たびたび「使用」ページを再発見し、「こんにちは、これは素晴らしいです!」と思っています。そして、私はそれらをもう一度忘れる。 –
"使用"ページには最大のUIがありません。 –
答えは敬遠しますが、実際には魚の釣り方を教えてくれてとても涼しいです。キューは単なるコレクションを見る方法なので、多くのコレクションがそのコレクションを実装しています。同様に、コレクションのように動作するが、特定の他のロジック(スレッドキューなど)を持つものは、同じインターフェイスを使用することがあります。
javadocsをどこで調べるのが大きな助けになります。私はあなたが見ていると確信していますが、実装を見てと思っていませんでした。生活し、学びます。
場合によっては、サブクラス/拡張リストを追いかける必要があります。 Queueを見て、AbstractQueueを見た場合、クラスがそれを実装しているかどうかを知りたいかもしれません。
私はyaのためにあなた-1,2の一つを取り除くよ:)
import java.util.Queue;
ちょうどその
Enqueue function == Queue_Object.add(input_value);
Dequeue function == Queue_Object.pull(); //return the value and delete it from queue
さまざまな方法がたくさんあるので、いいえ、Queue
クラスは、ありませんキューを実装するためには、ユースケースに合ったものを選ぶ必要があります。同じことがコレクションフレームワークの他のコレクションのいずれにも当てはまります。たとえば、ArrayList
とLinkedList
の両方がList
を実装しています。一般的なパターンは、オブジェクトの継承を有効に使用します。
インターフェイスです。 Queue
は、オブジェクトで再生するロールを定義します。
サブインターフェイスDeque
は、ロールをさらに拡大または特殊化します。この場合、デキューまたはダブルエンドキューでは、キューの両端に要素を追加したり削除したりできます。
クラスは、オブジェクトがどのように役割を果たすかの実装を提供します。たとえば、ArrayDeque
は、リサイズ可能な配列を使用してダブルエンドキューを実装します。これは、リンクリストを使用するLinkedList
とは異なる長所と短所を持っています。役割としてインターフェイスの考え方については詳しく説明し
は、ArrayDeque
はDeque
を実装していても、両方のインターフェイスを実装することが両方の役割を果たしていることができることを意味するので、あなたはそれを心配することなくQueue
としてそれを使用することができることに注意してください。同様に、LinkedList
は、List
,Queue
またはDeque
ハットを着用することができます。
このため、Collectionsフレームワークのようなものを使用するには、インターフェイスへのプログラムへのプログラムの使用が推奨されます。つまり、クラス名ではなくクラスを使用するときにインターフェイスを使用します。あなたが特定のクラスに関連付けられていない
- ある。このように
Queue<String> logQueue = new ConcurrentLinkedQueue<String>(); ... logQueue.add("Log message");
し、必要に応じて多くを変更することなく、ドロップイン置換を使用することができます。たとえば、次のようなオブジェクトをインスタンス化しますコード、
- は、クラスで何をしているのかを、そのクラスの役割に名前を付けて文書化しています。これが役に立つ一般的な原則は、自己文書化コードです。これは、本質的に、コード自体がコメントなどを使わずに自明であるようにするためです。
Queue<Integer> queue = new LinkedList<>();
queue.add(1);
queue.add(2);
queue.add(3);
while (!queue.isEmpty()) {
System.out.println(queue.remove());// prints 1 2 3
}
- 1. eclipse-collectionsのソース・ジャーはどこにありますか?
- 2. Javaパッケージとクラスはどこにありますか?
- 3. Java APIクラス図はどこにありますか?
- 4. JavaにResolvedFutureクラスはありますか?
- 5. "Collections"など、Javaで複数のクラス名があるとはどういう意味ですか?
- 6. JavaにはObjectクラスがあります。 Javascriptにはどのようなクラスがありますか?
- 7. DisplayTag - すべてのライブラリ/クラスはどこにありますか?
- 8. .NETのMonitorクラスのソースコードはどこにありますか?
- 9. org.eclipse.ui.PlatformUIのクラスはどこにありますか?
- 10. 参照先のFreemarker Hibernateクラスはどこにありますか
- 11. "Shamir's Secret Sharing"のC#クラスはどこにありますか?
- 12. Tomcatの認証コード/クラスはどこにありますか?
- 13. javax.swing.BorderLayoutクラスのソースコードはどこにありますか?
- 14. pyomoのクラス、メソッド、プロパティはどこにありますか?
- 15. Java 9のsrc.zipの場所はどこにありますか?
- 16. コントローラーコンポーネントはどこにありますか?
- 17. 私のスレッドはReady Queueにありますか?
- 18. OpenJDKのJava 7アップデートはどこにありますか?
- 19. JavaやPythonのソースコードはどこにありますか?
- 20. netlib-javaのソースコードはどこにありますか?
- 21. Google App Engine Java: "CompiledCursor"のソースコードはどこにありますか?
- 22. NodeConnectorRefのJavaファイルはどこにありますか?
- 23. Google Cloud Datastore JavaライブラリのallocateIdsはどこにありますか?
- 24. コードハイライト用のJavaライブラリはどこにありますか?
- 25. Vigenere暗号のJavaソースコードはどこにありますか?
- 26. Java EL 3.0の実装はどこにありますか
- 27. Java Web Startデプロイのアプリケーションロジックはどこにありますか?
- 28. オープンソースのJavaライブラリはどこにありますか?
- 29. ISO SchematronバリデータのJava実装はどこにありますか?
- 30. Java 9のJREフォルダはどこにありますか?
http://java.sun.com/j2se/1.5.0/docs/api/java/util/ArrayList.htmlによると、ArrayListには、キューを実装していません。 –
はい、私はいくつかのリンクを得るために戻ったときにそれを実現しました。明らかに私の記憶には誤りがあります。 – Rob
それが起こります。 Javaライブラリ全体が記憶されていると感心します。 EEが記憶されていたら、私はゆっくりと後退します。 –