由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Java版 - HashMap 怎样循环用更快?
相关主题
问一道关于Vector的题Java里有没有象cell array一样的东西
如何遍历hashtable里边的每一项?Collection return type and web service
哪位大哥总结一下Iterator这些数据集合interview question
Simple question: delete element from collection on condition?NullPointerException 问题
要随机返回一个Set的里的元素, 如何操作呢?怎样才能使一个算法用于不同的数据结构?
Why java.lang.Iterable depends on java.util.IteratorMySQL JDBC 问题
如何实现一个LRU based cacheClient-side application development-HELP
请问有没有generic的arrayConcurrentModificationException
相关话题的讨论汇总
话题: hashmap话题: 多线程话题: iterate话题: map
进入Java版参与讨论
1 (共1页)
s*********g
发帖数: 2350
1
有一个HashMap, 比如
map = new LinkedHashMap(100)
一开始就创建好了, 中途也不会更改。 程序会多线程成千上万次的调用,
每个thread 会iterate map
怎样iterate更快更有效?
1) 用 map.keySet()
2) 用 map.entrySet() 循环
3) initially先把 map.entrySet() copy 成array,多线程时
再循环这个array
我感觉2) 和 3) 差不多, 比1)快。
可是我写了个小程序测了下, 怎么三个都花一样的时间?
c*m
发帖数: 836
2
HashMap根本就没lock, 你得到的entrySet, keySet也不过是个指向mem address的
reference, 所以怎么用区别都不大。
z****e
发帖数: 54598
3
多线程同时并发修改会导致你在iteration时候丢出concurrentmodificationexception
建议上concurrentHashMap
s*********g
发帖数: 2350
4
那用什么比较好?

【在 c*m 的大作中提到】
: HashMap根本就没lock, 你得到的entrySet, keySet也不过是个指向mem address的
: reference, 所以怎么用区别都不大。

s*********g
发帖数: 2350
5
如果hashmap不会被修改, 就没事了吧。

concurrentmodificationexception

【在 z****e 的大作中提到】
: 多线程同时并发修改会导致你在iteration时候丢出concurrentmodificationexception
: 建议上concurrentHashMap

s*********g
发帖数: 2350
6
有一个HashMap, 比如
map = new LinkedHashMap(100)
一开始就创建好了, 中途也不会更改。 程序会多线程成千上万次的调用,
每个thread 会iterate map
怎样iterate更快更有效?
1) 用 map.keySet()
2) 用 map.entrySet() 循环
3) initially先把 map.entrySet() copy 成array,多线程时
再循环这个array
我感觉2) 和 3) 差不多, 比1)快。
可是我写了个小程序测了下, 怎么三个都花一样的时间?
c*m
发帖数: 836
7
HashMap根本就没lock, 你得到的entrySet, keySet也不过是个指向mem address的
reference, 所以怎么用区别都不大。
z****e
发帖数: 54598
8
多线程同时并发修改会导致你在iteration时候丢出concurrentmodificationexception
建议上concurrentHashMap
s*********g
发帖数: 2350
9
那用什么比较好?

【在 c*m 的大作中提到】
: HashMap根本就没lock, 你得到的entrySet, keySet也不过是个指向mem address的
: reference, 所以怎么用区别都不大。

s*********g
发帖数: 2350
10
如果hashmap不会被修改, 就没事了吧。

concurrentmodificationexception

【在 z****e 的大作中提到】
: 多线程同时并发修改会导致你在iteration时候丢出concurrentmodificationexception
: 建议上concurrentHashMap

G******n
发帖数: 572
11
1或2,直接用2吧是我的话

【在 s*********g 的大作中提到】
: 那用什么比较好?
G******n
发帖数: 572
12
immutable map?

【在 s*********g 的大作中提到】
: 如果hashmap不会被修改, 就没事了吧。
:
: concurrentmodificationexception

w**z
发帖数: 8232
13
2

【在 s*********g 的大作中提到】
: 那用什么比较好?
g*********9
发帖数: 1285
14
+1

【在 w**z 的大作中提到】
: 2
1 (共1页)
进入Java版参与讨论
相关主题
ConcurrentModificationException要随机返回一个Set的里的元素, 如何操作呢?
what is Agile development methodology?Why java.lang.Iterable depends on java.util.Iterator
改写(migrate) stored proc 问题如何实现一个LRU based cache
文件分割的问题请问有没有generic的array
问一道关于Vector的题Java里有没有象cell array一样的东西
如何遍历hashtable里边的每一项?Collection return type and web service
哪位大哥总结一下Iterator这些数据集合interview question
Simple question: delete element from collection on condition?NullPointerException 问题
相关话题的讨论汇总
话题: hashmap话题: 多线程话题: iterate话题: map