のドキュメントにArrayDequeは次のように書かれています:
このクラスは、スタックとして使用すると Stack よりも高速になり、キューとして使用すると LinkedList よりも高速になる可能性があります。
ArrayDequeをスタックとして使用する場合と を使用する場合の違いについては言及されていませんArrayList。ArrayList次のようにスタックとして使用できます。
list.add(object); // push
object = list.remove(list.size() - 1); // pop
ArrayListをこの方法でのみ使用すると、 のパフォーマンスが よりも悪いことがわかりましたArrayDeque。この違いの原因は何ですか?確かに、それはsize()?への呼び出しだけではありません。内部的には、ArrayListとの両方ArrayDequeが必要に応じてより大きな配列に置き換えられる を使用して実装されているObject[]ため、パフォーマンスはほぼ同じであるはずです。