ArrayDeque クラスの共通メソッド

データ構造

ArrayDeque クラスは、両端キューの線形実装クラスです。

次のような特徴があります。

  • ArrayDeque は、配列に実装された両端キューです。
  • ArrayDeque のデキューとエンキューは、先頭ポインターと末尾ポインターをループし、配列を使用することによって実現されます。
  • ArrayDeque の容量が足りない場合は拡張され、その都度容量が 2 倍になります。
  • ArrayDeque はスタックとして直接使用できます。スタックとして使用すると Stack よりもパフォーマンスが向上し、キューとして使用すると LinkedList よりもパフォーマンスが向上します。
  • 容量のサイズに制限はなく、必要に応じて容量を拡張できます。
  • 非スレッドセーフなキュー、同期戦略なし、マルチスレッドセーフなアクセスはサポートされません。
  • フェイルファストの機能があり、null 値を保存できず、双方向の反復子のトラバーサルをサポートします。

メソッドリスト

タイプ 方法 タイプ
要素を追加 public void addFirst(E e) 要素を配列の先頭に追加します
public void addLast(E e) 配列の後に要素を追加します
public boolean offerFirst(E e) 配列の前に要素を追加し、追加が成功したかどうかを返します。
public boolean offerLast() 配列の後に要素を追加し、追加が成功したかどうかを返します。
要素の削除 public EpollFirst() 最初の要素を削除し、削除された要素の値、または要素が null の場合は null を返します。
public E RemoveFirst() 最初の要素を削除し、削除された要素の値を返します。要素が null の場合、例外がスローされます。
public EpollLast() 最後の要素を削除し、削除された要素の値、または null の場合は null を返します。
public E RemoveLast() 最後の要素を削除し、削除された要素の値を返します。それが null の場合、例外がスローされます。
public boolean RemoveFirstOccurrence(Object o) 指定された要素の最初の出現を削除します
public boolean RemoveLastOccurrence(Object o) 指定された要素の最後に出現した要素を削除します
要素を取得する public E getFirst() 最初の要素を取得します。例外がない場合は例外がスローされます
public E getLast() 最後の要素を取得します。例外がない場合は例外がスローされます
キュー操作 public boolean add(E e) キューの最後に要素を追加します
パブリック ブール オファー(E e) 要素をキューの最後に追加し、それが成功したかどうかを返します
パブリック E 削除() キュー内の最初の要素を削除し、その要素の値を返します。要素が null の場合、例外がスローされます (実際、基礎となる呼び出しは、removeFirst() です)
パブリック E ピーク() null を返す場合は最初の要素を取得します
スタック操作 public void Push(E e) 要素をスタックの先頭に追加します
パブリック E ポップ() スタックの最上位要素を削除します。スタックの最上位に要素がない場合は、例外がスローされます。
他の public int size() キュー内の要素の数を取得します
パブリックブール値 isEmpty() キューが空かどうかを確認する
public イテレータ iterator() イテレータ、前から後ろに繰り返します
public IteratordecendingIterator() イテレータ、後ろから前へ繰り返す
public boolean contains(Object o) 要素がキューに存在するかどうかを確認します
public Object[] toArray() 配列に変換する
public T[] toArray(T[] a) 配列定数に変換する
パブリックボイドクリア() 空のキュー
public ArrayDeque clone() クローン(コピー)

列に並んでいるとき

Deque<E> queue = new ArrayDeque<>();
queue.size()
E a=queue.addLast()
E b=queue.removeFirst()

スタックとして使用する場合

Deque<E> stack = new ArrayDeque<>();
stack.size()
E a=stack.addLast()
E b=stack.removeLast()

おすすめ

転載: blog.csdn.net/twi_twi/article/details/130018629