我已经阅读了Java Collections元素 - List, Set and Maps.
根据我的研究,我发现:
我的发现是否正确?实际上我想了解这些系列的性能问题。如果每个集合中有add, retrieve and search
个数据,那么性能会是什么?
答案 0 :(得分:0)
性能取决于用例场景。例如,如果您有多次更新(删除,插入等)的记录,则应使用链接列表。如果你将遍历大型列表,你应该尝试ArrayList。如果您需要指定(例如通过id)记录,那么最佳选项是Map。 所以收集的性能取决于真实场景。了解性能的最佳方法是实现一对使用案例,并检查哪个集合有更好的时间取决于场景。 这是一个有趣的网站:http://www.programcreek.com/2013/03/arraylist-vs-linkedlist-vs-vector/
答案 1 :(得分:0)
你的问题已有提示。
List
实施LinkedList
和ArrayList
在考虑用于频繁修改,随机访问等时的行为不同。Map
,他们的行为之间存在differences。这是他们performance comparison的链接。 TreeMap/Set
中搜索将始终更快,因为实体已经排序。所以这一切都取决于你需要什么。在此基础上选择合适的实现方式。 答案 2 :(得分:0)
我认为你对你的发现非常严格。在网络http://bigocheatsheet.com/中,您可以看到它们之间的区别。
作为使用每个数据结构的示例,当您在键和值之间有明确的关系时使用了地图,例如,当您想要保留用户记录并且每个用户都有唯一的ID时,集合对于保留记录是有用的那些不会重复外表的东西,例如当你有某种枚举但是你需要保留比枚举名称更多的信息时,列表是默认数据结构,以保持列表记录而没有太多限制或限制,但也是效率最差的问题之一。
我强烈建议您将该页面保留在书签中,并在您熟悉它们之前每次想知道应该使用的内容。
干杯。
PD:对于兼容性问题,地图经常被反汇编成带有对象的列表或集合,例如使用JPA(地图通常比环境中的列表更难使用)。