<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 110, comments - 101, trackbacks - 0, articles - 7
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    java map的操作 與 遍歷效率

    Posted on 2011-05-12 21:13 云云 閱讀(10257) 評論(3)  編輯  收藏
    1.聲明一個map: Map map = new HashMap(); 
    2.向map中放值,注意:map是key-value的形式存放的.如:

    map.put(”sa”,”dd”);

    3.從map中取值:String str = map.get(”sa”).toString();結果是:str = ”dd”;

    4.遍歷一個map,從中取得key 和value

    JDK1.
    5

    Map m 
    = new HashMap(); 
    for (Object o : map.keySet()) 
    map.get(o); 
    }


    JDK1.
    4

    Map map 
    = new HashMap() ; 

    Iterator it 
    = map.entrySet().iterator() ; 
    while (it.hasNext()) 

    Map.Entry entry 
    = (Map.Entry) it.next() ; 
    Object key 
    = entry.getKey() ; 
    Object value 
    = entry.getValue() ; 
    }

    遍歷效率對比:
    第一種:

      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的遍歷方法和以上的差不多
    !

    評論

    # ·1  回復  更多評論   

    2015-09-09 15:55 by ·1
    ABC的風格

    # re: java map的操作 與 遍歷效率  回復  更多評論   

    2015-09-09 15:56 by ·11
    213

    # re: java map的操作 與 遍歷效率  回復  更多評論   

    2015-09-09 15:56 by ·11
    @&#183;1

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 中文字幕免费观看| 男人天堂免费视频| 97无码免费人妻超级碰碰碰碰 | 在线观看免费视频一区| 免费观看国产小粉嫩喷水| 亚洲av中文无码乱人伦在线观看 | 青青青亚洲精品国产| 国产男女猛烈无遮挡免费视频网站| 亚洲乱码在线播放| 大学生美女毛片免费视频| 亚洲国产成人久久综合| 俄罗斯极品美女毛片免费播放| 国产精品无码亚洲精品2021| 免费a级毛片无码a∨性按摩| 羞羞视频免费网站日本| 亚洲精品97久久中文字幕无码| 国产精品免费观看视频| 亚洲AV无码精品色午夜果冻不卡| 免费女人高潮流视频在线观看| 亚洲激情电影在线| 色吊丝最新永久免费观看网站| 色天使色婷婷在线影院亚洲| 亚洲日韩中文字幕日韩在线| 国产精品偷伦视频观看免费 | 国产精品永久免费视频| 亚洲色成人WWW永久网站| 69视频免费观看l| 亚洲精品国产高清在线观看| 亚洲AV日韩精品一区二区三区| 免费无码又爽又刺激网站| 久久久亚洲AV波多野结衣| 在线观看免费a∨网站| 一区二区视频在线免费观看| 亚洲美女中文字幕| 日韩毛片免费在线观看| 爽爽爽爽爽爽爽成人免费观看| 亚洲成人免费电影| 亚洲精品黄色视频在线观看免费资源 | a国产成人免费视频| 亚洲一区中文字幕在线观看| 亚洲高清最新av网站|