我想知道什么时候用集和List.On它应该是其基础decided.For例如,当我们面对的是为了应用,在那我应该怎么用? List any = new ArrayList <>(); 或 Set any = new HashSet(); 或LinkedList。如何从List Set中决定应该使用哪个集合?
0
A
回答
2
这一切都取决于你的当前需求
例如,考虑约
一些要点如果您要访问的元素,你将他们以同样的方式,那么你应该使用
List
,因为List
是元素的有序集合。您可以使用get(int index)
方法访问它们,而Set
没有此类方法。无法保证它们的存储顺序。如果你的元素包含重复,然后用
List
因为Set
不允许重复,而如果你的元素是唯一的,那么你可以使用Set
。至于
LinkedList
和ArrayList
被认为是: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
相关问题
- 1. 我应该使用哪个集合
- 2. 应该在哪里使用System.Collections.Concurrent集合?
- 3. 在这种情况下应该使用哪个集合?
- 4. 如何指定我想在Modello中使用Set而不是List?
- 5. 你如何决定代码的哪个部分应该被整合/重构?
- 6. 集合来自哪里“val Singleton4:Set = set => set == 4”?
- 7. 你如何决定使用哪个ORM?
- 8. 我应该如何决定哪个类负责对象创建?
- 9. 在Set集合中绑定对象
- 10. 在Java中使用哪个集合?
- 11. 我应该在.NET中使用哪个集合接口进行COM-interop?
- 12. ASP.NET应该使用哪种类型的集合?
- 13. 我应该如何从另一个解决方案中引用程序集?
- 14. 我应该使用哪种设计模式来存储集合?
- 15. 如何在Spark中注册List集合?
- 16. 哪个字符集应该用于Mysql
- 17. 我应该在mysql中使用SET NAMES?
- 18. 如何从一个特定集合中蒙戈使用Ruby
- 19. 我应该使用哪些elasticsearch聚合?
- 20. c# - 我应该使用“ref”通过引用一个方法来传递一个集合(例如List)吗?
- 21. 如何确定应该使用哪个树遍历?
- 22. 我应该使用JSON转换哪个集合并再次解析?
- 23. WCF OperationContract - 我应该公开哪种通用集合类型?
- 24. 哪个集合应该是有效的这个问题
- 25. 我应该在哪里存储len(list)?
- 26. 春天,如何决定客户端应该服务哪个用户?
- 27. 我应该如何用Javascript解决这个组合场景?
- 28. 如何指定哪个@Tag应该用于IntelliJ中的Junit
- 29. 生成元素的所有可能的组合,从字符数组 - 使用集合框架(List和Set)
- 30. 我该如何指定一个情节应该去哪个图?
不少各地处理这个问题。看看例如在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
http://stackoverflow.com/a/21974362/1545775 –