java对hashmap迭代_Java:通过HashMap迭代,这样更有效率?
第二個(gè)選項(xiàng)肯定更有效,因?yàn)樵诘谝粋€(gè)選項(xiàng)中只進(jìn)行一次查找,次數(shù)為n次。
但是,沒有什么比嘗試它更好,當(dāng)你可以。所以這里 –
(不完美,但足夠好驗(yàn)證假設(shè)和我的機(jī)器)
public static void main(String args[]) {
Map map = new HashMap();
// populate map
int mapSize = 500000;
int strLength = 5;
for(int i=0;i
map.put(RandomStringUtils.random(strLength), RandomUtils.nextInt());
long start = System.currentTimeMillis();
// alt. #1
for (String key : map.keySet()) {
Integer value = map.get(key);
// use key and value
}
System.out.println("Alt #1 took "+(System.currentTimeMillis()-start)+" ms");
start = System.currentTimeMillis();
// alt. #2
for (Map.Entry entry : map.entrySet()) {
String key = entry.getKey();
Integer value = entry.getValue();
// use key and value
}
System.out.println("Alt #2 took "+(System.currentTimeMillis()-start)+" ms");
}
結(jié)果(有趣的)
使用int mapSize = 5000; int strLength = 5;
Alt#1花費(fèi)了26ms
Alt#2花了20毫秒
使用int mapSize = 50000; int strLength = 5;
Alt#1花了32 ms
Alt#2花了20毫秒
使用int mapSize = 50000; int strLength = 50;
Alt#1花了22毫秒
Alt#2花費(fèi)了21ms
使用int mapSize = 50000; int strLength = 500;
Alt#1花費(fèi)了28ms
Alt#2花了23毫秒
使用int mapSize = 500000; int strLength = 5;
Alt#1花了92毫秒
Alt#2花了57毫秒
…等等
總結(jié)
以上是生活随笔為你收集整理的java对hashmap迭代_Java:通过HashMap迭代,这样更有效率?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小森生活和雨籽怎么采
- 下一篇: 北京环球影城外地车能去吗