java hashmap遍历顺序_Java中HashMap遍历的两种方式
第一種:
Map?map?=??HashMap();
Iterator?iter?=?map.entrySet().iterator();
(iter.hasNext())?{
Map.Entry?entry?=?(Map.Entry)?iter.next();
Object?key?=?entry.getKey();
Object?val?=?entry.getValue();
}
效率高,以后一定要使用此種方式!
第二種:
Map?map?=??HashMap();
Iterator?iter?=?map.keySet().iterator();
(iter.hasNext())?{
Object?key?=?iter.next();
Object?val?=?map.get(key);
}
效率低,以后盡量少使用!
HashMap的遍歷有兩種常用的方法,那就是使用keyset及entryset來進行遍歷,但兩者的遍歷速度是有差別的,下
面請看實例:
HashMapTest?{
main(String[]?args)?...{
HashMap?hashmap?=??HashMap();
(?i?=?0;?i?
hashmap.put(""?i,?"thanks");
}
bs?=?Calendar.getInstance().getTimeInMillis();
Iterator?iterator?=?hashmap.keySet().iterator();
(iterator.hasNext())?...{
System.out.print(hashmap.get(iterator.next()));
}
System.out.println();
System.out.println(Calendar.getInstance().getTimeInMillis()?-?bs);
listHashMap();
}
listHashMap()?...{
java.util.HashMap?hashmap?=??java.util.HashMap();
(?i?=?0;?i?
hashmap.put(""?i,?"thanks");
}
bs?=?Calendar.getInstance().getTimeInMillis();
java.util.Iterator?it?=?hashmap.entrySet().iterator();
(it.hasNext())?...{
java.util.Map.Entry?entry?=?(java.util.Map.Entry)?it.next();
System.out.print(entry.getValue());
}
System.out.println();
System.out.println(Calendar.getInstance().getTimeInMillis()?-?bs);
}
}
對于keySet其實是遍歷了2次,一次是轉為iterator,一次就從hashmap中取出key所對于的value。而entryset只是
遍歷了第一次,他把key和value都放到了entry中,所以就快了。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的java hashmap遍历顺序_Java中HashMap遍历的两种方式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java ftp主动模式和被动模式_ft
- 下一篇: java pdfbox2 中文乱码,如何