首页 > 编程知识 正文

hashmap遍历过程,hashmap实例

时间:2023-05-03 12:52:36 阅读:36309 作者:3346

1 .推荐方法:使用入口而不是密钥集遍历Map类集合KV。 代码示例为以下:

//循环第二类HashMapInteger,String map=new HashMapInteger,String (; for(intI=0; i 10000000; I ) ) map.put(I (第I,' I '个) ); } SetMap.EntryInteger,String entrySet=map.entrySet (; for(map.entryinteger,String entry : entrySet ) ({ entry.getValue ); 65http://www.Sina.com/: keyset实际上迁移到了迭代器对象,并遍历了两次从hashMap中检索与key对应的value。 entrySet在条目中只遍历一次就包含key和value会更有效率。 对于JDK8,请使用Map.foreach方法。

2.4种方法为publicstaticvoidmain (string [ ] args ) { HashMapInteger,String map=new HashMapInteger,string ); for(intI=0; i 10000000; I ) ) map.put(I (第I,' I '个) ); (//循环第一类long t1=System.nanoTime ); Object key[]=map.keySet ().toArray ); for(intI=0; i map.size (; I ) ) map.get(key[I]; } long t2=System.nanoTime (; //循环第二类SetMap.EntryInteger,String entrySet=map.entrySet (; for(map.entryinteger,String entry : entrySet ) ({ entry.getValue ); } long t3=System.nanoTime (; //循环第三类IteratorInteger it=map.keySet ().iterator ); wile(it.hasnext () (integerii=) integer ) it.next ); map.get(ii; } long t4=System.nanoTime (; //循环第四类SetInteger keySet=map.keySet (; for(integerkk:keyset ) map.get ) kk; } long t5=System.nanoTime (; system.out.println(1 (第一种方法需要时间((t2 - t1 )/1000 )微秒); System.out.println (第二种方法需要时间((t3 - t2 )/1000 )微秒); System.out.println (第三种方法需要时间((t4 - t3 )/1000 )微秒); System.out.println (第四种方法需要时间() (t5 - t4 )/1000 (微秒) ); }输出结果(1000万份数据) :

参照:

HASHMAP的4种遍历方法和效率比较(易懂) )

在Java中遍历ConcurrentHashMap的四种方法

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。