メインコンテンツへスキップ
  1. 記事一覧/

Java の ArrayDequeクラス 各種操作の計算量

Java ArrayDeque データ構造 計算量
⚠️

目次

JavaのArrayDequeクラスの各種操作の計算量をまとめました。 参考情報は、JDK 21の API Specificationです。

ArrayDeque クラス #

まとめ #

操作速度計算量備考
追加定数時間先頭または末尾に対してのみ可能
取得定数時間先頭または末尾に対してのみ可能
削除(先頭・末尾)定数時間
削除(途中)線形時間remove, removeFirstOccurrence,
removeLastOccurrence, iterator.remove
検索線形時間contains
一括操作線形時間addAll, removeAll, retainAll など

iterator.remove は、イテレーターの remove メソッドを指しています。 また、線形時間は償却定数時間も含みます。

ほとんどの操作が定数時間で処理されます。 contains中間要素の削除 が線形時間になることだけ、覚えておけば良さそうです。

メソッド一覧 #

定数時間 #

O(1) で処理される 定数時間 または 償却定数時間 のメソッドは、以下の通りです。

  • add
  • addFirst
  • addLast
  • clear
  • element
  • getFirst
  • getLast
  • isEmpty
  • offer
  • offerFirst
  • offerLast
  • peek
  • peekFirst
  • peekLast
  • poll
  • pollFirst
  • pollLast
  • pop
  • push
  • removeFirst
  • removeLast
  • size

線形時間 #

O(n) で処理される 線形時間 のメソッドは、以下の通りです。

  • remove
  • removeFirstOccurrence
  • removeLastOccurrence
  • contains
  • iterator.remove
  • 一括操作(bulk operation)

おわり