我是靠谱客的博主 壮观外套,最近开发中收集的这篇文章主要介绍Java里多个Map的性能比较(TreeMap、HashMap、ConcurrentSkipListMap),觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
1 hashmap 使用注意事项
那么hashmap什么时候进行扩容呢?当hashmap中的元素个数超过数组大小*loadFactor时,就会进行数组扩容,loadFactor的默认值为0.75,也就是说,默认情况下,数组大小为16,那么当hashmap中元素个数超过16*0.75=12的时候,就把数组的大小扩展为2*16=32,即扩大一倍,然后重新计算每个元素在数组中的位置,而这是一个非常消耗性能的操作,所以如果我们已经预知hashmap中元素的个数,那么预设元素的个数能够有效的提高hashmap的性能。比如说,我们有1000个元素new HashMap(1000), 但是理论上来讲new HashMap(1024)更合适,不过上面annegu已经说过,即使是1000,hashmap也自动会将其设置为1024。 但是new HashMap(1024)还不是更合适的,因为0.75*1000 < 1000, 也就是说为了让0.75 * size > 1000, 我们必须这样new HashMap(2048)才最合适,既考虑了&的问题,也避免了resize的问题。
参考 http://blog.hongtium.com/java-map-skiplist/
最后
以上就是壮观外套为你收集整理的Java里多个Map的性能比较(TreeMap、HashMap、ConcurrentSkipListMap)的全部内容,希望文章能够帮你解决Java里多个Map的性能比较(TreeMap、HashMap、ConcurrentSkipListMap)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复