我受到了这个主题的启发:List和Set之间的性能和内存分配比较实际上运行了一些测试并测量ArrayList和之间的性能差异HashSet.
在上述主题中,最受欢迎的答案引起了很多关注(链接),他说:
对于相同数量的元素,HashSet比ArrayList消耗大约5.5倍的内存
在ScalaMeter的帮助下,我想确保这一点.
我做了两个简单的测试,从添加10000到100000元素都ArrayList和HashSet.将初始大小设置为最大值不会更改结果.我用两种类型测试了这些集合:
Int (将连续数字0到100000)String(使用Apache放置随机字符串RandomStringUtils)该代码可以在我的仓库在这里.
并运行那些,给了我这样的结果:
问题:
在引用的答案中提到的理论发生了什么?这是假的吗?或者我的身边可能有些错误?
谢谢 :)!
@andrzej回答后 更新我再次更新了代码(和存储库).结果越来越好,但结果仍然不是5.5倍.我现在正在检查更多的东西.