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