您的位置:首页 > 编程语言 > Java开发

java常用集合性能比拼

2013-06-18 15:45 78 查看
Hash
集合的性能比任何
List
的性能都要高,但每条目的成本也要更高。由于访问性能方面的原因,如果您正在创建大集合(例如,用于实现缓存),那么最好使用基于
Hash
的集合,而不必考虑额外的开销。
对于并不那么注重访问性能的较小集合而言,
List
则是合理的选择。
ArrayList
LinkedList
集合的性能大体相同,但其内存占用完全不同:
ArrayList
的每条目大小要比
LinkedList
小得多,但它不是准确设置大小的。
List
要使用的正确实现是
ArrayList
还是
LinkedList
取决于
List
长度的可预测性。如果长度未知,那么正确的选择可能是
LinkedList
,因为集合包含的空白空间更少。如果大小已知,那么
ArrayList
的内存开销会更低一些。
选择正确的集合类型使您能够在集合性能与内存占用之间达到合理的平衡。除此之外,您可以通过正确调整集合大小来最大化填充率、最小化未得到利用的空间,从而最大限度地减少内存占用。

集合性能默认容量空时的大小10K 条目的开销准确设置大小?扩展算法
HashSet
O(1)16144360Kx2
HashMap
O(1)16128360Kx2
Hashtable
O(1)11104360Kx2+1
LinkedList
O(n)148240K+1
ArrayList
O(n)108840Kx1.5
StringBuffer
O(1)167224x2

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: