论坛首页 海阔天空论坛

遍历map-Java基础

浏览 5559 次
精华帖 (0) :: 良好帖 (0) :: 灌水帖 (0) :: 隐藏帖 (34)
作者 正文
   发表时间:2011-06-02  

2011-1-6 java遍历map所有元素

//JDK1.5后
Map map = getMap();  
for(Object obj : map.keySet()) {
    Object key = obj;
    Object value = map.get(obj);
}

//JDK1.5之前
Map map =  getMap();
Iterator iter = map.entrySet().iterator();    
while(iter.hasNext()) {
    Map.Entry entry = (Map.Entry)iter.next();
    Object key = entry.getKey();
    Object value = entry.getValue();
}

 

遍历K-V

 

/* 第一种: entryset只遍历一次:它把key和value放到entry */
Map map = getMap();
Iterator iter = map.entrySet().iterator();
while (iter.hasNext()) {
    Map.Entry entry = (Map.Entry) iter.next();
    Object key = entry.getKey();
    Object val = entry.getValue();
}//高效,使用此种方式

/* 第二种: keySet实际遍历了2次:
转为iterator时候一次;
取key对应value又一次。*/
Map map = getMap();
Iterator iter = map.keySet().iterator();
while (iter.hasNext()) {
    Object key = iter.next();
    Object val = map.get(key);
}//效率低 
 
   发表时间:2011-06-03   最后修改:2011-06-03
hashmap按value序打印 key ?
0 请登录后投票
   发表时间:2011-06-03  
抛出异常的爱 写道
hashmap按value序打印 key ?

异常兄:您的话不完整。
可否讲全,可能水平有些菜,希望理解。
0 请登录后投票
   发表时间:2011-06-03  
dotjar 写道
抛出异常的爱 写道
hashmap按value序打印 key ?

异常兄:您的话不完整。
可否讲全,可能水平有些菜,希望理解。

hashmap {aa=12,bb=3,cc=9}

bb
cc
aa
0 请登录后投票
   发表时间:2011-06-03  
用hashmap 测了下,是第二种的效率高 
0 请登录后投票
   发表时间:2011-06-03  
treeMap ,是第一种效率高
0 请登录后投票
论坛首页 海阔天空版

跳转论坛:
Global site tag (gtag.js) - Google Analytics