我有一个循环遍历项目集合,并且只在新集合中存储唯一项目。
对于新的唯一项集合,我主要选择ArrayList
数据结构。但另一种方法是使用ArrayList
并调用contains方法来检查<link>
是否已包含该项目。
哪一个更快,开销更少?
答案 0 :(得分:0)
我建议使用LinkedHashSet
。它是为您所需要的。每次需要插入内容时搜索整个ArrayList
,(O(n) every time))
执行速度非常慢。您可以使用contains方法,但它仍然比插入LinkedHashSet
慢得多,因为在后台O(n)
。要非常准确地了解性能,您需要检查您的尺寸和操作。如果您需要插入几次然后阅读很多次,那么ArrayList
可能会变得更好。但是如果你插入很多并且阅读次数较少,那么LinkedHashSet
会更快。