我研究过,如果我们想要更多的插入/删除次数,我们会使用LinkedList;如果我们有更多的再培训,我们会使用ArrayList。
但我的怀疑是,在编程中,所有的插入都需要每次重试,否则插入几乎毫无用处。每次操作,每次计算,我们都需要检索数据。
那么我们为什么要使用Linkedlist呢?
让我们考虑一个执行以下操作的程序:
- 在列表末尾添加n个元素
- 从列表中检索第一个元素n次
在这种情况下,如果使用LinkedList,则所有插入都将花费O(1(时间,并且所有检索也将花费O。
另一方面,如果使用ArrayList,则可能需要多次增加支持该列表的数组的数组大小,每次都需要复制占用O(n(的数组。当您进行检索时,根据实现的不同,您可能需要多次减小数组大小,每次都需要O(n(。
因此,正如您所看到的,在某些情况下,LinkedList在ArrayList上具有优势。
如上所述,这主要是由于每个数据结构的单独操作时间复杂性造成的。