2016-08-20 75 views
0

我想知道什么时候用集和List.On它应该是其基础decided.For例如,当我们面对的是为了应用,在那我应该怎么用? List any = new ArrayList <>(); 或 Set any = new HashSet(); 或LinkedList。如何从List Set中决定应该使用哪个集合?

+4

不少各地处理这个问题。看看例如在http://stackoverflow.com/questions/1035008/what-is-the-difference-between-set-and-list,http://stackoverflow.com/questions/322715/when-to-use-linkedlist-over -arraylist – lrnzcig

+0

http://stackoverflow.com/a/21974362/1545775 –

回答

2

这一切都取决于你的当前需求

例如,考虑约

  1. 一些要点如果您要访问的元素,你将他们以同样的方式,那么你应该使用List,因为List是元素的有序集合。您可以使用get(int index)方法访问它们,而Set没有此类方法。无法保证它们的存储顺序。

  2. 如果你的元素包含重复,然后用List因为Set不允许重复,而如果你的元素是唯一的,那么你可以使用Set

  3. 至于LinkedListArrayList被认为是:

    • LinkedList是缓慢的,因为他们只允许顺序访问。但是如果你的元素大小经常发生变化,那么它们就很好,而如果你的元素的大小是固定的,那么你应该使用ArrayList,因为它们允许快速的随机读取访问,所以你可以在固定时间内抓取任何元素。
    • 然而,当你需要大量的删除操作,因为添加或从任何地方卸下但最终需要在整体平移后的元素ArrayList并不好。
    • ArrayList都没有考虑好,当你有,因为如果你想在中间插入一个新的元素(并保持在同一顺序的所有元素),插入在中间任何那么你将不得不一切后移该位置插入了元素,而LinkedList中的这种操作仅需要更改一些引用。

看看几个数据结构的特点,根据你的要求,你可以决定你应该使用哪些数据结构。

还看到:
- When to use LinkedList over ArrayList?
- What is the difference between Set and List?
- What Java Collection should I use?
- Insertion in the middle of ArrayList vs LinkedList

相关问题