posts - 41, comments - 15, trackbacks - 0, articles - 1
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          日歷

          <2012年1月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          2930311234

          文章檔案

          搜索

          •  

          map的三種遍歷方法!

          Posted on 2012-01-17 10:58 yuhaibo736 閱讀(214) 評論(0)  編輯  收藏
          集合的一個很重要的操作---遍歷,學習了三種遍歷方法,三種方法各有優缺點~~
          /*
           * To change this template, choose Tools | Templates
           * and open the template in the editor.
           */
          package cn.tsp2c.liubao;
          import java.util.Collection;
          import java.util.HashMap;
          import java.util.Iterator;
          import java.util.Map;
          import java.util.Set;
          import java.util.TreeMap;
          /**
           *
           * @author Administrator
           */
          public class TestMap {
              public static void main(String[] args) {
                  Map<String, Student> map = new HashMap<String, Student>();
                  Student s1 = new Student("宋江", "1001", 38);
                  Student s2 = new Student("盧俊義", "1002", 35);
                  Student s3 = new Student("吳用", "1003", 34);
                 
                  map.put("1001", s1);
                  map.put("1002", s2);
                  map.put("1003", s3);
                  Map<String, Student> subMap = new HashMap<String, Student>();
                  subMap.put("1008", new Student("tom", "1008", 12));
                  subMap.put("1009", new Student("jerry", "1009", 10));
                  map.putAll(subMap);
                  work(map);
                  workByKeySet(map);
                  workByEntry(map);
              }
            //最常規的一種遍歷方法,最常規就是最常用的,雖然不復雜,但很重要,這是我們最熟悉的,就不多說了!!
              public static void work(Map<String, Student> map) {
                  Collection<Student> c = map.values();
                  Iterator it = c.iterator();
                  for (; it.hasNext();) {
                      System.out.println(it.next());
                  }
              }
            //利用keyset進行遍歷,它的優點在于可以根據你所想要的key值得到你想要的 values,更具靈活性!!
              public static void workByKeySet(Map<String, Student> map) {
                  Set<String> key = map.keySet();
                  for (Iterator it = key.iterator(); it.hasNext();) {
                      String s = (String) it.next();
                      System.out.println(map.get(s));
                  }
              }
            //比較復雜的一種遍歷在這里,呵呵~~他很暴力哦,它的靈活性太強了,想得到什么就能得到什么~~
              public static void workByEntry(Map<String, Student> map) {
                  Set<Map.Entry<String, Student>> set = map.entrySet();
                  for (Iterator<Map.Entry<String, Student>> it = set.iterator(); it.hasNext();) {
                      Map.Entry<String, Student> entry = (Map.Entry<String, Student>) it.next();
                      System.out.println(entry.getKey() + "--->" + entry.getValue());
                  }
              }
          }
          class Student {
              private String name;
              private String id;
              private int age;
              public Student(String name, String id, int age) {
                  this.name = name;
                  this.id = id;
                  this.age = age;
              }
              @Override
              public String toString() {
                  return "Student{" + "name=" + name + "id=" + id + "age=" + age + '}';
              }
          }

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


          網站導航:
           
          主站蜘蛛池模板: 城口县| 平定县| 杭州市| 广元市| 金门县| 海兴县| 钟祥市| 玛沁县| 永丰县| 桃源县| 江口县| 莎车县| 石林| 五寨县| 松溪县| 嘉黎县| 扶风县| 噶尔县| 盐池县| 错那县| 蕉岭县| 安丘市| 博爱县| 萝北县| 万全县| 大厂| 孟连| 英山县| 庆元县| 蚌埠市| 遵义市| 濉溪县| 宾川县| 尚志市| 武宣县| 敦煌市| 平山县| 新泰市| 屏山县| 江城| 竹北市|