如何从List Set中决定应该使用哪个集合?
这个问题在这里已经有了答案:
这一切都取决于您当前的要求
例如,考虑一些重要的观点
如果您想以与插入元素相同的方式访问元素,那么您应该使用List
因为List
是元素的有序集合。 你可以使用get(int index)
方法来访问它们,而没有这样的方法可用于Set
。 无法保证它们的存储顺序。
如果元素包含重复项,则使用List
因为Set
不允许重复项,而如果元素是唯一的,则可以使用Set
。
就LinkedList
和ArrayList
:
LinkedList
速度很慢,因为它们只允许顺序访问。 但是如果你的元素大小经常变化,那么它们就很好,而如果你的元素的大小是固定的,那么你应该使用ArrayList
因为它们允许快速的随机读取访问,所以你可以在常量时间内抓取任何元素。 ArrayList
并不好,因为从最终的位置添加或删除都需要将所有后面的元素都移走。 ArrayList
是不好的,那么你将不得不在所有的元素之后移动所有的元素元素被插入,而LinkedList
这种操作只需要改变一些引用。 看看几种数据结构的特性,并根据您的要求,您可以决定应该在哪里使用哪种数据结构。
另见:
- 何时通过ArrayList使用LinkedList?
- Set和List有什么区别?
- 我应该使用什么Java集合?
- 插入ArrayList vs LinkedList中间
上一篇: How to decide which collection should be used from List Set?