当前在线人数16572
首页 - 分类讨论区 - 电脑网络 - 爪哇娇娃版 - 同主题阅读文章

此篇文章共收到打赏
0

  • 10
  • 20
  • 50
  • 100
您目前伪币余额:0
未名交友
[更多]
[更多]
HashMap 怎样循环用更快?
[版面:爪哇娇娃][首篇作者:shiningking] , 2015年09月02日10:56:55 ,1609次阅读,8次回复
来APP回复,赚取更多伪币 关注本站公众号:
[分页:1 ]
shiningking
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 1 ]

发信人: shiningking (我爱西红柿), 信区: Java
标  题: HashMap 怎样循环用更快?
发信站: BBS 未名空间站 (Wed Sep  2 10:56:55 2015, 美东)

有一个HashMap, 比如
map = new LinkedHashMap<String, double[]>(100)

一开始就创建好了, 中途也不会更改。 程序会多线程成千上万次的调用,

每个thread 会iterate map

怎样iterate更快更有效?

1) 用 map.keySet()

2) 用 map.entrySet() 循环

3) initially先把 map.entrySet() copy 成array,多线程时
再循环这个array

我感觉2) 和 3) 差不多, 比1)快。
可是我写了个小程序测了下, 怎么三个都花一样的时间?
--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 67.]

 
cdm
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 2 ]

发信人: cdm (cdm), 信区: Java
标  题: Re: HashMap 怎样循环用更快?
发信站: BBS 未名空间站 (Thu Sep  3 12:07:33 2015, 美东)

HashMap根本就没lock, 你得到的entrySet, keySet也不过是个指向mem address的
reference, 所以怎么用区别都不大。
--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 74.]

 
zhaoce
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 3 ]

发信人: zhaoce (米高蜥蜴), 信区: Java
标  题: Re: HashMap 怎样循环用更快?
发信站: BBS 未名空间站 (Tue Sep  8 11:22:11 2015, 美东)

多线程同时并发修改会导致你在iteration时候丢出concurrentmodificationexception
建议上concurrentHashMap
--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 27.]

 
shiningking
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 4 ]

发信人: shiningking (我爱西红柿), 信区: Java
标  题: Re: HashMap 怎样循环用更快?
发信站: BBS 未名空间站 (Tue Sep  8 15:57:26 2015, 美东)

那用什么比较好?
【 在 cdm (cdm) 的大作中提到: 】
: HashMap根本就没lock, 你得到的entrySet, keySet也不过是个指向mem address的
: reference, 所以怎么用区别都不大。



--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 67.]

 
shiningking
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 5 ]

发信人: shiningking (我爱西红柿), 信区: Java
标  题: Re: HashMap 怎样循环用更快?
发信站: BBS 未名空间站 (Tue Sep  8 15:58:38 2015, 美东)

如果hashmap不会被修改, 就没事了吧。
【 在 zhaoce (米高蜥蜴) 的大作中提到: 】
: 多线程同时并发修改会导致你在iteration时候丢出
concurrentmodificationexception
: 建议上concurrentHashMap



--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 67.]

 
GodOfPen
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 6 ]

发信人: GodOfPen (笔——喷), 信区: Java
标  题: Re: HashMap 怎样循环用更快?
发信站: BBS 未名空间站 (Tue Feb 16 00:28:43 2016, 美东)

1或2,直接用2吧是我的话

【 在 shiningking (我爱西红柿) 的大作中提到: 】
: 那用什么比较好?




--
☆ 发自 iPhone 买买提 1.21.04
--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 173.]

 
GodOfPen
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 7 ]

发信人: GodOfPen (笔——喷), 信区: Java
标  题: Re: HashMap 怎样循环用更快?
发信站: BBS 未名空间站 (Tue Feb 16 00:29:02 2016, 美东)

immutable map?

【 在 shiningking (我爱西红柿) 的大作中提到: 】
: 如果hashmap不会被修改, 就没事了吧。
: concurrentmodificationexception




--
☆ 发自 iPhone 买买提 1.21.04
--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 173.]

 
wwzz
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 8 ]

发信人: wwzz (一辈子当码工), 信区: Java
标  题: Re: HashMap 怎样循环用更快?
发信站: BBS 未名空间站 (Sat Feb 20 12:17:19 2016, 美东)

2

【 在 shiningking (我爱西红柿) 的大作中提到: 】
: 那用什么比较好?



--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 73.]

 
groundhog09
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 9 ]

发信人: groundhog09 (衰哥), 信区: Java
标  题: Re: HashMap 怎样循环用更快?
发信站: BBS 未名空间站 (Fri Dec  8 19:28:07 2017, 美东)

+1
【 在 wwzz (一辈子当码工) 的大作中提到: 】
: 2



--
***********************
--清理五毛,人人有责--
***********************

※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 2607:f2c0:94a2:]

[分页:1 ]
[快速返回] [ 进入爪哇娇娃讨论区] [返回顶部]
回复文章
标题:
内 容:

未名交友
将您的链接放在这儿

友情链接


 

Site Map - Contact Us - Terms and Conditions - Privacy Policy

版权所有,未名空间(mitbbs.com),since 1996