HashMap如何遍历呢?

sideking 2010-03-07 05:40:55
Map map = new HashMap();
Iterator iter = map.entrySet().iterator();
while (iter.hasNext()) {
Map.Entry entry = (Map.Entry) iter.next();
Object key = entry.getKey();
Object val = entry.getValue();
}


我只有两个值,有什么方法会快点?简洁点
map.get("id");
map.get("value");
...全文
6385 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
wxy2121987 2011-09-26
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 javaalpha 的回复:]
Java code

java Map 遍历速度最优解

第一种:
Map map = new HashMap();
Iterator iter = map.entrySet().iterator();
while (iter.hasNext()) {
Map.Entry entry = (Map.Entry) iter.next();
Object key = ent……
[/Quote]
学习了
huanying137 2011-09-21
  • 打赏
  • 举报
回复
学习学习
flyingZippo 2011-09-16
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 apollo_ts 的回复:]

说一种时髦的写法:

for (Map.Entry<String, Salary> m : s.entrySet()) {
System.out.println(m.getKey());
System.out.println(m.getValue());
}
[/Quote]
鲁国
rwutongyu 2011-09-01
  • 打赏
  • 举报
回复
学习学习
MorrisMao 2011-08-30
  • 打赏
  • 举报
回复
学习了~!
cileen 2010-06-05
  • 打赏
  • 举报
回复
路过 学习
老马哥V 2010-04-06
  • 打赏
  • 举报
回复
收藏了 谢谢
chonganwang 2010-03-08
  • 打赏
  • 举报
回复
引用 9 楼 wfeng007 的回复:
引用 7 楼 sideking 的回复:关键是我这值 不确定 所以我想 map.get(1); map.get(2); 这样最好........
如果你确定只用两个值,而且没有key-value结构,何必用map 用list或者数组就好了。。。


正解。没有key的话,直接使用LIST,简单明了
wfeng007 2010-03-08
  • 打赏
  • 举报
回复
引用 7 楼 sideking 的回复:
关键是我这值 不确定

所以我想
map.get(1);
map.get(2);

这样最好........

如果你确定只用两个值,而且没有key-value结构,何必用map 用list或者数组就好了。。。
APOLLO_TS 2010-03-08
  • 打赏
  • 举报
回复
说一种时髦的写法:

for (Map.Entry<String, Salary> m : s.entrySet()) {
System.out.println(m.getKey());
System.out.println(m.getValue());
}
sideking 2010-03-08
  • 打赏
  • 举报
回复
引用 6 楼 wfeng007 的回复:
你只放 两个么当然最快捷的就是
map.get("id");
map.get("value");
这两句话咯。。。。


关键是我这值 不确定

所以我想
map.get(1);
map.get(2);

这样最好........
wfeng007 2010-03-07
  • 打赏
  • 举报
回复
你只放 两个么当然最快捷的就是
map.get("id");
map.get("value");
这两句话咯。。。。
shuiguozheng 2010-03-07
  • 打赏
  • 举报
回复
学习了。。。。。,,,,,
Cranenet 2010-03-07
  • 打赏
  • 举报
回复
EntrySet遍历
JavaAlpha 2010-03-07
  • 打赏
  • 举报
回复
java Map 遍历速度最优解

第一种:
Map map = new HashMap();
Iterator iter = map.entrySet().iterator();
while (iter.hasNext()) {
Map.Entry entry = (Map.Entry) iter.next();
Object key = entry.getKey();
Object val = entry.getValue();
}
效率高,以后一定要使用此种方式!
第二种:
Map map = new HashMap();
Iterator iter = map.keySet().iterator();
while (iter.hasNext()) {
Object key = iter.next();
Object val = map.get(key);
}
效率低,以后尽量少使用!
HashMap的遍历有两种常用的方法,那就是使用keyset及entryset来进行遍历,但两者的遍历速度是有差别的,下面请看实例:
public class HashMapTest {
public static void main(String[] args) ...{
HashMap hashmap = new HashMap();
for (int i = 0; i < 1000; i ) ...{
hashmap.put("" i, "thanks");
}
long bs = Calendar.getInstance().getTimeInMillis();
Iterator iterator = hashmap.keySet().iterator();
while (iterator.hasNext()) ...{
System.out.print(hashmap.get(iterator.next()));
}
System.out.println();
System.out.println(Calendar.getInstance().getTimeInMillis() - bs);
listHashMap();
}
public static void listHashMap() ...{
java.util.HashMap hashmap = new java.util.HashMap();
for (int i = 0; i < 1000; i ) ...{
hashmap.put("" i, "thanks");
}
long bs = Calendar.getInstance().getTimeInMillis();
java.util.Iterator it = hashmap.entrySet().iterator();
while (it.hasNext()) ...{
java.util.Map.Entry entry = (java.util.Map.Entry) it.next();
// entry.getKey() 返回与此项对应的键
// entry.getValue() 返回与此项对应的值
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中,所以就快了。
注:Hashtable的遍历方法和以上的差不多!
吴佳峻 2010-03-07
  • 打赏
  • 举报
回复
引用 1 楼 uk445737547 的回复:
Map map = new HashMap();
for (Iterator iter = map.keySet().iterator();
iter.hasNext();
) { Object key = iter.next();
Object val = map.get(key); } 

up
uk445737547 2010-03-07
  • 打赏
  • 举报
回复
HashMap Map map = new HashMap();
for (Iterator iter = map.entrySet().iterator();
iter.hasNext();
)
{ Map.Entry entry = (Map.Entry) iter.next();
Object key = entry.getKey();
Object val = entry.getValue();
}

或者: Map map = new HashMap();
for (Iterator iter = map.keySet().iterator();
iter.hasNext();
) { Object key = iter.next();
Object val = map.get(key); }

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧