如何从List Set中决定应该使用哪个集合?

这个问题在这里已经有了答案:

  • 何时通过ArrayList使用LinkedList? 28个答案
  • 我应该使用什么Java集合? 4个答案

  • 这一切都取决于您当前的要求

    例如,考虑一些重要的观点

  • 如果您想以与插入元素相同的方式访问元素,那么您应该使用List因为List是元素的有序集合。 你可以使用get(int index)方法来访问它们,而没有这样的方法可用于Set 。 无法保证它们的存储顺序。

  • 如果元素包含重复项,则使用List因为Set不允许重复项,而如果元素是唯一的,则可以使用Set

  • LinkedListArrayList

  • LinkedList速度很慢,因为它们只允许顺序访问。 但是如果你的元素大小经常变化,那么它们就很好,而如果你的元素的大小是固定的,那么你应该使用ArrayList因为它们允许快速的随机读取访问,所以你可以在常量时间内抓取任何元素。
  • 然而,当你需要大量的删除操作时, ArrayList并不好,因为从最终的位置添加或删除都需要将所有后面的元素都移走。
  • 因为如果你想在中间插入一个新的元素(并且保持所有元素的顺序相同),那么当你不得不在中间插入任何东西时ArrayList是不好的,那么你将不得不在所有的元素之后移动所有的元素元素被插入,而LinkedList这种操作只需要改变一些引用。
  • 看看几种数据结构的特性,并根据您的要求,您可以决定应该在哪里使用哪种数据结构。

    另见:
    - 何时通过ArrayList使用LinkedList?
    - Set和List有什么区别?
    - 我应该使用什么Java集合?
    - 插入ArrayList vs LinkedList中间

    链接地址: http://www.djcxy.com/p/19983.html

    上一篇: How to decide which collection should be used from List Set?

    下一篇: When to use each Java Collections data structure