LinkedListsとArrayListsには違いがあると思います。ArrayListsは動的配列に他なりません。したがって、ArrayListsはヒープの連続した場所に格納されていると思います(これが、O(1)getメソッドがある理由です)。問題は、ArrayListの拡張を妨げるヒープに格納された別のオブジェクトがある場合はどうなるかということです。この場合、どのように実装されますか?ArrayListの残りの部分がヒープの他の非厳密な領域に格納されている場合、getメソッドはO(1)にはなりません。
たとえば、メモリ位置10にオブジェクトがあるとします。その後、メモリ位置5にArrayListが作成されます。簡単にするために、配列リストの各要素は1バイトだけであると仮定します。これは、ArrayListが5つの要素にのみ拡張できることを意味します。