相关疑难解决方法(0)

Set和List有什么区别?

接口Set<E>List<E>接口之间的根本区别是什么?

java list set

395
推荐指数
13
解决办法
55万
查看次数

ArrayList和HashSet内存分配奇怪的测试结果

我受到了这个主题的启发:List和Set之间的性能和内存分配比较实际上运行了一些测试并测量ArrayList和之间的性能差异HashSet.

在上述主题中,最受欢迎的答案引起了很多关注(链接),他说:

对于相同数量的元素,HashSet比ArrayList消耗大约5.5倍的内存

ScalaMeter的帮助下,我想确保这一点.

我做了两个简单的测试,从添加10000100000元素都ArrayListHashSet.将初始大小设置为最大值不会更改结果.我用两种类型测试了这些集合:

  • Int (将连续数字0到100000)
  • String(使用Apache放置随机字符串RandomStringUtils)

该代码可以在我的仓库在这里.

并运行那些,给了我这样的结果:

  • X轴 - 尺寸 - >集合的大小
  • Y轴 - 值 - >使用的kB量

对于收藏品Int: 整数结果

对于持有String10号的藏品: 字符串结果大小为10

对于持有String50码的藏品: 字符串结果大小为50

问题:

在引用的答案中提到的理论发生了什么?这是假的吗?或者我的身边可能有些错误?

谢谢 :)!

@andrzej回答后 更新我再次更新了代码(和存储库).结果越来越好,但结果仍然不是5.5倍.我现在正在检查更多的东西.

java collections scala performance-testing scalameter

12
推荐指数
1
解决办法
721
查看次数

标签 统计

java ×2

collections ×1

list ×1

performance-testing ×1

scala ×1

scalameter ×1

set ×1