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

          map的三種遍歷方法!

          Posted on 2012-01-17 10:58 yuhaibo736 閱讀(213) 評(píng)論(0)  編輯  收藏
          集合的一個(gè)很重要的操作---遍歷,學(xué)習(xí)了三種遍歷方法,三種方法各有優(yōu)缺點(diǎn)~~
          /*
           * 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);
              }
            //最常規(guī)的一種遍歷方法,最常規(guī)就是最常用的,雖然不復(fù)雜,但很重要,這是我們最熟悉的,就不多說了?。?br />    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進(jìn)行遍歷,它的優(yōu)點(diǎn)在于可以根據(jù)你所想要的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));
                  }
              }
            //比較復(fù)雜的一種遍歷在這里,呵呵~~他很暴力哦,它的靈活性太強(qiáng)了,想得到什么就能得到什么~~
              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 + '}';
              }
          }

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 涪陵区| 柳林县| 滨州市| 兰坪| 正安县| 南乐县| 新竹县| 沾化县| 华宁县| 同心县| 乌审旗| 莆田市| 新津县| 日喀则市| 观塘区| 石景山区| 汉沽区| 崇文区| 天祝| 镇赉县| 北辰区| 新源县| 广南县| 汝南县| 来安县| 卢湾区| 青神县| 湘潭县| 庐江县| 平安县| 原阳县| 和静县| 孙吴县| 长顺县| 清苑县| 万宁市| 沿河| 朔州市| 上饶市| 新乡市| 益阳市|