哪个是更快的集合和更小的内存占用空间,我可以用它来存储一些要在稍后迭代的值?(不需要订购)
问问题
2495 次
2 回答
1
这在很大程度上取决于用例。这就是为什么有这么多Collections
,毕竟!每个人都适合做不同的事情。
最重要Collection
的是——你需要什么?除了迭代之外,您还会对它执行任何其他操作吗?它将存储多少元素?某些元素会被复制吗?是否有任何性能方面或内存方面的限制?如果没有这些信息,我们只能给您一般性的答案。
最通用的方法是使用数组。严重地。如果要节省内存,请使用数组。
如果这不是一个选项,那么ArrayList
这是您的最佳选择,因为它在内部使用数组并且通常是最节省内存的Collection
(我认为与 一起ArrayDeque
)。它预先分配了一些空间,每次填满时都会变大两倍。因此,请尝试使用正确数量的插槽来构建它,这样就不会使用多余的空间。
如果您正在寻找特定的东西,您可以使用这些:
于 2012-05-18T09:29:35.660 回答
0
这在很大程度上取决于用例。
需要收藏吗?不只是一个数组?我会选择 a LinkedList
,因为它不像 anArrayList
或Vector
(颤抖)那样预先分配空间。
于 2012-05-18T09:20:08.400 回答