当前位置:  开发笔记 > 编程语言 > 正文

优化java.util.Map/Set中的插入速度

如何解决《优化java.util.Map/Set中的插入速度》经验,为你挑选了2个好方法。

有没有办法通过指定项目的顺序来优化java.util.Collection中的插入速度?

例如

java.util.Set set = java.util.TreeSet();

这个解决方案:

set.add("A");
set.add("B");
set.add("C");
set.add("D");
set.add("E");

比这个更快(随机顺序)?

set.add("E");
set.add("D");
set.add("C");
set.add("A");
set.add("B");

(以及其他集合的相同问题:HashMap,hastable ......)

谢谢



1> duffymo..:

简单的答案是"时间和看到".

另一个答案是"无所谓".这似乎是微观优化,几乎不值得努力.我认为它属于"微优化剧场悲剧悲剧"的范畴.


@Pierre对BDB的插入实际上会产生巨大的影响:至少对于本机BDB,按键顺序插入比随机插入快一些(是的,我们测试了这个).事实上,我们的处理是通过写入磁盘完成的,合并排序,插入和组合比直接插入快5倍.但是,由于多种原因(例如,它不是瓶颈,bdb将是;(b)可能没有任何优化),尝试优化散列/树映射的可能性更小.

2> starblue..:

对于java.util.Map和java.util.Set没有,因为这些是接口,并且有不同的实现.

对于具体实现,它不是一个值得优化的.如果您遇到性能问题,请选择更合适的实施方案,或重新考虑您需要存储的内容和方式.

在一台普通的笔记本电脑上插入5000个随机数到一个HashSet大约需要一毫秒,所以你想插入多少百万个元素才能使这种优化变得有价值?

推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有