为什么不使用LinkedList (java)

为什么不使用LinkedList (java)

教科书上的内容

对于数组,随机元素访问的时间复杂度是 O(1),元素插入操作是 O(n);

对于链表,随机元素访问的时间复杂度是 O(n),元素插入操作是 O(1)。

由此可见在随机插入中应该会使用LinkedList ,但在实际中并不是这样。

在大多数场景中ArrayList 在各种性能下都远胜LinkedList ,可以自行测试。

这里只说明为什么不用。

不能只考虑算法

在LinkedList 中,在实现的时候,我们需要先通过循环获取到那个节点的 Node,然后再执行插入操作。前者也是有开销的,不可能只考虑插入操作本身的代价。

抛开算法层面不谈,由于 CPU 缓存、内存连续性等问题,链表这种数据结构的实现方式对性能并不友好,即使在它最擅长的场景都不一定可以发挥威力。

相关推荐

都很优雅的鹳、鹤、鹭,到底该如何区分?
为什么双鱼座总是让人心动?答案竟藏在他们的细腻情感里!
单日是什么意思(花呗账单日是什么意思)
365bet亚洲真人

单日是什么意思(花呗账单日是什么意思)

📅 07-25 🔥 389
怎么删除手机使用记录
下载365app

怎么删除手机使用记录

📅 07-17 🔥 719
lol魔法少女拉克丝皮肤多少钱 lol魔法少女系列新皮肤详解
熊猫鱼的饲养方式及注意事项 它们如何分辨公母?