我相信 LinkedLists 和 ArrayLists 之间是有区别的。ArrayLists 只不过是动态数组。所以我假设 ArrayLists 存储在连续位置的堆中(这就是它们具有 O(1) get 方法的原因)。问题是,如果堆中存储的另一个对象会阻止 ArrayList 增长怎么办?在这种情况下如何实施?如果 ArrayList 的剩余部分存储在堆的其他非 conrigous 区域中,则 get 方法不会是 O(1)。
例如,假设在内存位置 10 中有一个对象。之后,在内存位置 5 处创建一个 ArrayList。为简单起见,假设数组列表中的每个元素只有一个字节。这意味着 ArrayList 只能增长到 5 个元素。