开发者社区> 问答> 正文

何时在数组/数组列表上使用链接列表?

已解决

我使用了很多列表和数组,但是我还没有遇到这样一种情况:数组列表无法像链接列表一样容易地使用。我希望有人能给我一些有关链表何时明显更好的例子。

展开
收起
保持可爱mmm 2020-02-06 22:25:50 421 0
1 条回答
写回答
取消 提交回答
  • 采纳回答

    在以下情况下,链表优于数组:

    您需要从列表中进行固定时间的插入/删除操作(例如,在实时计算中,时间可预测性至关重要)

    您不知道列表中有多少个项目。对于数组,如果数组太大,可能需要重新声明并复制内存

    您不需要随机访问任何元素

    您希望能够在列表中间插入项目(例如优先级队列)

    在以下情况下最好使用数组:

    您需要对元素进行索引/随机访问

    您可以提前知道数组中元素的数量,以便为数组分配正确的内存量

    依次遍历所有元素时需要速度。您可以在数组上使用指针数学来访问每个元素,而您需要基于指针为链接列表中的每个元素查找节点,这可能会导致页面错误并可能导致性能下降。

    内存是一个问题。填充的阵列比链接的列表占用更少的内存。数组中的每个元素只是数据。每个链接列表节点都需要数据以及指向链接列表中其他元素的一个(或多个)指针。

    数组列表(如.Net中的数组列表)为您提供了数组的好处,但可以为您动态分配资源,因此您不必担心列表大小,您可以轻松删除任何索引的项目,而无需付出任何努力或重新改组周围的元素。在性能方面,数组列表要比原始数组慢。

    问题来源于stack overflow

    2020-02-06 22:26:21
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载