Java:泛型ArrayLists比迭代中的LinkedLists更快吗?

对于特定类型的ArrayList,我们可以在ArrayList中找到对象(特定类型的)的大小,并直接访问O(1)中任何索引处的对象。 这是因为对象引用存储在ArrayList中连续的内存块中,因此通过跳过object_size * index内存位置,我们访问所需对象的引用所在的内存位置。
而在LinkedList中,我们必须迭代每个对象直到达到所需的对象。

对于包含不同类型对象(具有不同大小)的通用ArrayList, get(index i)在O(1)中完成? 如果是这样,怎么样?


你在错误的观念下工作。 对象不存储在数组中,只有对象的引用(即指针)存储在数组中。 对象本身就在堆上。 因此,通过索引查找ArrayList的特定对象将始终为O(1)无论它包含什么内容,并且LinkedList将为O(n)

链接地址: http://www.djcxy.com/p/19987.html

上一篇: Java: Are generic ArrayLists faster than LinkedLists for iteration?

下一篇: How do I remove repeated elements from ArrayList?