尝试确定要使用哪种类型的Java集合时的一般注意事项?

尝试确定要使用哪种类型的Java集合时的一般注意事项?,java,data-structures,Java,Data Structures,我知道这个问题非常模糊,但我正试图找出一个思考过程,找出在管理数据时哪个集合更适合使用 我想我只是想知道是否有什么东西会尖叫着“使用这个!”,比如: 大数据集,大量插入和搜索特定值:最佳收集类型 大数据集、排序和数据操作:最佳收集类型 大数据集,按上次添加排序:最佳收集类型 大数据集,删除或移动x后的项目大约时间:最佳收集类型 等等。研究很少 假设你要求的是决策支持,而不是固执己见的“最佳实践”,我做了一些研究来寻找指导方针、比较,甚至是决策图表 解释集合的好处和用法的文章 在这里,您可以找到每

我知道这个问题非常模糊,但我正试图找出一个思考过程,找出在管理数据时哪个集合更适合使用

我想我只是想知道是否有什么东西会尖叫着“使用这个!”,比如:

大数据集,大量插入和搜索特定值:最佳收集类型
大数据集、排序和数据操作:最佳收集类型
大数据集,按上次添加排序:最佳收集类型
大数据集,删除或移动x后的项目大约时间:最佳收集类型
等等。

研究很少 假设你要求的是决策支持,而不是固执己见的“最佳实践”,我做了一些研究来寻找指导方针、比较,甚至是决策图表

解释集合的好处和用法的文章 在这里,您可以找到每个主要Java
集合的解释:

在这里,您可以找到一系列问题,以便选择正确的问题,以及使用集合及其方法的最佳实践:

包含收集决策流程图的文章 我还在类似的问题中发现了一些决策流程图,例如来自:

或者在LogicBic的教程中从不同的角度进行查看


也许一些SO成员想分享他们最实用的
集合
s,以及专业领域的实际用例或经验。

1。使用
ArrayList
,您的判断往往是正确的。2.需要根据条目索引以外的任何内容进行查找吗?使用
HashMap
。3.这两者会让你出人意料地走得更远。这里的关键是避免维护并行集合。一般来说,您拥有的数据类型以及它们之间的关系应该决定您的收集类型,而不是您想对其执行的操作。您可以对任何集合类型执行任何操作。查找“最佳集合类型”的第一步是确定候选集合。如果只有一个候选者,那么它本质上是“最佳”选择。啊哈,因此,与其说我想做什么操作,不如说是数据如何相互关联,正如@joachimsuer所指出的,每个集合类型都有它的优点(例如查找或索引)/缺点(例如性能、重复)并且必须安装到您的用例中。一本关于“数据结构”的标准书可能会教你理论。在实践中阅读和编写代码之后,您将了解哪些是为了什么。在过去的5年中,我还经常看到
ArrayList
HashMap
HashSet
(按此顺序;我在大约80%的Java
集合
实现中看到了它们)。