Map的遍历

Map对象的建立

    Map<String, String> map = new HashMap<String, String>();

第一个参数是key
第二个参数是value
然后将key和所对应的value映射放入map

    map.put(key, value);

如果需要遍历Map,有几种方法:

  • entry遍历,利用foreach语句从entrySet()中遍历
    for (Entry<String, String> entry : map.entrySet()) {
            System.out.println(entry.getKey() + " , " + entry.getValue());
    }
  • keySet或者valueSet单独遍历
    Set<String> key = map.keySet();
    for (String string : key) {
        System.out.println(string + " " + map.get(string));
    }
    //注意key和value的不同存放方式
    Collection<String> values = map.values();
    for (String string : values) {
        System.out.println(string);
    }
  • Iterator遍历
    //所有的集合都有iterator
    Iterator<String> keyIter = map.keySet().iterator();
    Iterator<String> valueIter = map.values().iterator();
    Iterator<Entry<String, String>> entryIter = map.entrySet().iterator();

    //拿到iterator以后,可以使用while循环遍历
    while (entryIter.hasNext()) {
        Map.Entry<String, String> entry = (Map.Entry<String, String>) entryIter.next();
        System.out.println(entry.getKey() + " " + entry.getValue());
    }

    while (valueIter.hasNext()) {
        String value = (String) valueIter.next();
        System.out.println(value);
    }

    while (keyIter.hasNext()) {
        String keys = (String) keyIter.next();
        System.out.println(keys);
    }
  • 最后来一个小测试
    public static void main(String[] args) {

        String[] m = { "a", "b", "c" };
        String[] n = { "x", "y", "z" };

        Map<String, String> map = new HashMap<String, String>();

        for (int i = 0; i < n.length; i++) {
            for (int j = 0; j < n.length; j++) {
                map.put(m[i], n[j]);
            }
        }

        for (Entry<String, String> entry : map.entrySet()) {
            System.out.println(entry.getKey() + " , " + entry.getValue());
        }
    }

遍历以后结果如下:

    a , z
    b , z
    c , z

可以看出,map的特性是同一个key值只能有一个value,并且以最后一个value为准

你可能感兴趣的:(HashMap,遍历)