通常のArrayList
実装は、アイテムを繰り返し追加したり、アイテムを読み取ったりできるものが必要なコードの通常のgo-toコレクションタイプです。ArrayList
このタイプはそれよりもいくつかの機能を提供し、それらの一部を省略すると、主な使用例でタイプの機能が強化される可能性がありますが、操作が1%遅くなった場合に、ユニバース全体で費やす必要のある余分なCPU時間の合計は重要であること。
さらに、2つの賢明な動作モデルがあるため、両端配列リストへのインデックス付きアクセスがどのように動作するかは明確ではありません。低い番号の端からアイテムを追加または削除すると、既存のすべてのアイテムの番号が変更されるように指定できます。 、またはアイテム0の前に挿入されたアイテムのインデックスが-1になるように指定できます(既存のすべてのインデックスはそのまま残ります)。アイテム0の前に2^32を超えるアイテムを追加すると(メモリ不足を避けるためにもう一方の端から十分なアイテムを削除しながら)、アイテムMIN_INT、アイテムMAX_INT、MAX_INT-1などが追加されます。いくつかの方法がありますが、他の方法では非常に便利です(たとえば、実装により、反対側で動作するライタースレッドとリーダースレッドによる同時インデックスアクセスが可能になる場合があります。
さまざまなダブルエンドコレクションタイプの用途は確かにありますが、それは、ダブルエンド機能を追加することが一般的な使用例に何らかの価値を追加することを意味するものではありません。