logo

Java Deque インターフェイス

Deque と呼ばれるインターフェースは java.util パッケージに存在します。これは、インターフェイス キューのサブタイプです。 Deque は、データ構造の両端からの要素の追加と削除をサポートします。したがって、デキューはスタックまたはキューとして使用できます。スタックは後入れ先出し (LIFO) 操作をサポートし、先入れ先出し操作はキューによってサポートされることがわかっています。 deque は両方をサポートしているため、前述の操作のいずれかを実行できます。デケはの頭字語です 「両端キュー」。

Deque インターフェイス宣言

 public interface Deque extends Queue 

Java Deque インターフェースのメソッド

方法 説明
ブール値の追加(オブジェクト) これは、指定された要素をこの両端キューに挿入し、成功時に true を返すために使用されます。
ブール値のオファー(オブジェクト) これは、指定された要素をこの両端キューに挿入するために使用されます。
オブジェクトの削除() この両端キューの先頭を取得して削除するために使用されます。
オブジェクトのポーリング() この両端キューの先頭を取得して削除するために使用されます。この両端キューが空の場合は null を返します。
オブジェクト要素() この両端キューの先頭を取得するために使用されますが、削除はされません。
オブジェクトのピーク() この両端キューの先頭を取得するために使用されますが、削除はされません。この両端キューが空の場合は null を返します。
オブジェクトpeekFirst() このメソッドは両端キューの先頭要素を返します。このメソッドは両端キューから要素を削除しません。デキューが空の場合、このメソッドによって Null が返されます。
オブジェクトpeekLast() このメソッドは両端キューの最後の要素を返します。このメソッドは両端キューから要素を削除しません。デキューが空の場合、このメソッドによって Null が返されます。
ブール値 offerFirst(e) 要素 e をキューの先頭に挿入します。挿入が成功した場合は true が返されます。それ以外の場合は false。
オブジェクト offerLast(e) 要素 e をキューの末尾に挿入します。挿入が成功した場合は true が返されます。それ以外の場合は false。
Javaのarraydeque階層

ArrayDeque クラス

Java ではインターフェイスのオブジェクトを作成できないことはわかっています。したがって、インスタンス化には Deque インターフェイスを実装するクラスが必要で、そのクラスは ArrayDeque です。使用状況に応じて伸びたり縮んだりします。また、AbstractCollection クラスも継承します。

ArrayDeque クラスに関する重要な点は次のとおりです。

  • Queue とは異なり、両側から要素を追加または削除できます。
  • ArrayDeque では Null 要素は許可されません。
  • ArrayDeque は、外部同期がない場合、スレッド セーフではありません。
  • ArrayDeque には容量制限はありません。
  • ArrayDeque は LinkedList や Stack よりも高速です。

ArrayDeque 階層

ArrayDeque クラスの階層は、ページの右側に表示されている図に示されています。

JavaScript 演算子

ArrayDeque クラス宣言

java.util.ArrayDeque クラスの宣言を見てみましょう。

 public class ArrayDeque extends AbstractCollection implements Deque, Cloneable, Serializable 

Java ArrayDeque の例

ファイル名: ArrayDequeExample.java

 import java.util.*; public class ArrayDequeExample { public static void main(String[] args) { //Creating Deque and adding elements Deque deque = new ArrayDeque(); deque.add('Ravi'); deque.add('Vijay'); deque.add('Ajay'); //Traversing elements for (String str : deque) { System.out.println(str); } } } 

出力:

Ravi Vijay Ajay 

Java ArrayDeque の例: offerFirst() およびpollLast()

ファイル名: DequeExample.java

 import java.util.*; public class DequeExample { public static void main(String[] args) { Deque deque=new ArrayDeque(); deque.offer('arvind'); deque.offer('vimal'); deque.add('mukul'); deque.offerFirst('jai'); System.out.println('After offerFirst Traversal...'); for(String s:deque){ System.out.println(s); } //deque.poll(); //deque.pollFirst();//it is same as poll() deque.pollLast(); System.out.println('After pollLast() Traversal...'); for(String s:deque){ System.out.println(s); } } } 

出力:

After offerFirst Traversal... jai arvind vimal mukul After pollLast() Traversal... jai arvind vimal 

Java ArrayDeque の例: 書籍

ファイル名: ArrayDequeExample.java

 import java.util.*; class Book { int id; String name,author,publisher; int quantity; public Book(int id, String name, String author, String publisher, int quantity) { this.id = id; this.name = name; this.author = author; this.publisher = publisher; this.quantity = quantity; } } public class ArrayDequeExample { public static void main(String[] args) { Deque set=new ArrayDeque(); //Creating Books Book b1=new Book(101,'Let us C','Yashwant Kanetkar','BPB',8); Book b2=new Book(102,'Data Communications & Networking','Forouzan','Mc Graw Hill',4); Book b3=new Book(103,'Operating System','Galvin','Wiley',6); //Adding Books to Deque set.add(b1); set.add(b2); set.add(b3); //Traversing ArrayDeque for(Book b:set){ System.out.println(b.id+' '+b.name+' '+b.author+' '+b.publisher+' '+b.quantity); } } } 

出力:

101 Let us C Yashwant Kanetkar BPB 8 102 Data Communications & Networking Forouzan Mc Graw Hill 4 103 Operating System Galvin Wiley 6