Java
 Computer >> コンピューター >  >> プログラミング >> Java

ArrayBlockingQueueとLinkedBlockingQueueの違い


ブロッキングキューインターフェイスは、Java.util.concurrentパッケージの一部です。ブロッキングキューは、プロデューサーコンシューマーキュー用に特別に設計されており、収集もサポートしています。このインターフェースは、キューを介して実行できるすべてのタイプの操作をサポートするために、メソッドの4つの部分に分割されています。 nullキーは受け入れません。 ArrayBlockingQueueとLinkedBlockingQueueはどちらもブロッキングキューインターフェイスを実装しています

ArrayBlockingQueueとLinkedBlockingQueueは、どちらも要素をFIFO順に格納します。どちらのキューでも、要素の挿入は常にキューの末尾で行われ、要素の削除は常にキューの先頭から行われました。

Sr。いいえ。 キー ArrayBlockingQueue LinkedBlockingQueue
1
基本
アレイに支えられています
リンクリストに裏打ちされています
2
制限付き
制限付き配列キューです。したがって、一度作成すると容量を変更することはできません
無制限のキューです
3
スループット
リンクされたキューキューよりもスループットが低くなります
リンクされたキューは、アレイベースのキューよりもスループットが高くなります
4。
ロック
シングルロックダブルコンディションアルゴリズムを使用
キューに要素を挿入するためのputLockと、キューから要素を削除するためのtakeLockがあります

  1. JavaのQueueインターフェイスのpeek()、poll()、remove()メソッドの違いは?

    これは、処理前にデータを保持するためにインデントされたコレクションを表します。これは、先入れ先出し(FIFO)タイプの配置です。キューに入れられた最初の要素は、キューから取り出された最初の要素です。 peek()メソッド このメソッドは、オブジェクトを削除せずに、現在のキューの先頭にあるオブジェクトを返します。キューが空の場合、このメソッドはnullを返します。 例 import java.util.Iterator; import java.util.LinkedList; import java.util.Queue; public class QueueExample {  

  2. JavaでのArrayListとHashSetの違い

    HashSetとArrayListはどちらも、Javaコレクションフレームワークの最も重要なクラスの一部です。 以下は、ArrayListとHashSetの重要な違いです。 Sr。いいえ。 キー ArrayList ハッシュセット 1 実装 ArrayListはリストインターフェイスの実装です。 一方、 HashSetは、セットインターフェイスの実装です。 2 内部実装 ArrayListは、その実装のために配列を内部的に実装します。 HashSetは、実装にHashmapを内部的に使用します。 3 要素の順序 ArrayListは、挿入順序、つまり