首页 > 编程知识 正文

深度优先遍历java,hashmap的遍历方式

时间:2023-05-03 10:24:14 阅读:30060 作者:4750

基于[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

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