基于[java]代码的java Map遍历速度最优解
第一类:
Map map=new HashMap (;
Iterator iter=map.entrySet ().iterator );
wile(Iter.Hasnext () ) ) )。
映射. entry entry=(映射. entry ) iter.next );
Object key=entry.getKey (;
Object val=entry.getValue (;
}
因为效率很高,所以今后请一定要使用这个方式!
第二类:
Map map=new HashMap (;
Iterator iter=map.keySet ().iterator );
wile(Iter.Hasnext () ) ) )。
Object key=iter.next (;
对象val=map.get (key;
}
效率很低,今后尽量不要用!
遍历HashMap有两种常见方法。 那就是使用keyset和entryset进行遍历,但两者的遍历速度有差异。 来看看例子吧。
公共类散列映射测试{
publicstaticvoidmain (字符串[ ] args ) . {
HashMap hashmap=new HashMap (;
for(intI=0; i 1000; I ) . {
hashmap.put('I,' thanks ' );
}
long bs=Calendar.getInstance ().getTimeInMillis );
iterator iterator=hashmap.keyset ().iterator );
wile(iterator.Hasnext () ) ) )。
系统. out.print (hashmap.get ) iterator.next ();
}
System.out.println (;
system.out.println (calendar.getinstance ().getTimeInMillis ) (- bs );
列表散列映射(;
}
公共静态语音列表hashmap () .{
Java.util.hashmap hashmap=new Java.util.hashmap (;
for(intI=0; i 1000; I ) . {
hashmap.put('I,' thanks ' );
}
long bs=Calendar.getInstance ().getTimeInMillis );
Java.util.iterator it=hashmap.entryset ().iterator );
wile(it.Hasnext () ) ) )。
Java.util.map.entry entry=(Java.util.map.entry ) it.next );
//entry.getKey ) )返回与此条目对应的密钥
//entry.getValue ) )返回与此条目对应的值
system.out.print (输入. getvalue ();
}
System.out.println (;
system.out.println (calendar.getinstance ().getTimeInMillis ) (- bs );
}
}
对keySet实际扫描2次,1次转移到iterator,1次从hashmap中取出对key的value。 而且,entryset只是第一次扫描,他把key和value放进了entry,所以就快了。
注:Hashtable的遍历方法与上述相同!
---------解决构想--------------------------------------- -。
研究
关键是我的值还没有确定
所以我想
map.get(1;
map.get(2;
这个最好.
//源代码片段来自云代码http://yuncode.net