何时在 ArrayList 或 LinkedList 上使用 GlueList? [复制]

Posted

技术标签:

【中文标题】何时在 ArrayList 或 LinkedList 上使用 GlueList? [复制]【英文标题】:When to use GlueList over ArrayList or LinkedList? [duplicate] 【发布时间】:2016-02-17 16:28:40 【问题描述】:

我遇到了名为GlueList的新列表实现

我想知道什么时候应该使用 ArrayList 或 LinkedList。

【问题讨论】:

与任何实现 A 与实现 B 的情况相同,实际上:当您有其他工作代码时,您通过分析 ArrayList(/LinkedList) 是一个瓶颈,这意味着您无法满足您的要求所需的规格,尝试使用 GlueList,并再次配置文件。 “遇到”你必须意味着你实现了它(对于其他读者:链表/数组列表混合)。 【参考方案1】:

老实说,如果您在阅读GlueList 的信息后无法决定,哪些用几句话说明了为什么它更好(不同),甚至有基准来查看实际值和 Big-O 符号 - 你不在您必须考虑使用“尽可能有效”列表的位置。

如果你不确定要使用什么,这条规则就足够了:

我是否需要经常根据它们在数组中的位置来选择项目?然后使用 ArrayList。

我是否需要经常在数组中间添加/删除项目?使用链表

PS : 我很长时间没有使用 LinkedList,在大多数“通常”的情况下,ArrayList 更好。

【讨论】:

有谁知道现实世界中需要频繁添加/删除列表中间项目的实际场景? @Tarun 我想不出有人想在列表中间添加项目的情况,但是对于删除我可以想到一个你必须遍历项目并删除的情况它们取决于某些逻辑。例如,如果列表是一个消息收件箱,那么如果发件人未知,由于消息过期等原因我们可能会删除。这些只是我的一些想法。

以上是关于何时在 ArrayList 或 LinkedList 上使用 GlueList? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

何时在 c# 中使用 ArrayList 而不是 array[]?

增强for循环

ArrayList和LinkedList

列举几个关于Java Collections的常见问题并给出答案

集合系列—HashMap源码分析

何时在 Linq 中使用 Cast() 和 Oftype()