run in this way,   no why,   only for you heart
CSDN博客(点击进入) CSDN
51CTO(点击进入) 51CTO

Map集合遍历方法

map集合没有Iterator迭代器,去遍历这个集合只能通过其他方法。
map集合中有两个方法可以遍历集合值:
keySet() 和 entrySet()方法


1.keySet()方法

keySet:
    Set<K> keySet()返回此映射中包含的键的 Set 视图。该 set 受映射支持,所以对映射的更改可在此 set 中反映出来,反之亦然。如果对该 set 进行迭代的同时修改了映射(通过迭代器自己的 remove 操作除外),则迭代结果是不确定的。set 支持元素移除,通过 Iterator.removeSet.remove、removeAll、retainAll 和 clear 操作可从映射中移除相应的映射关系。它不支持 add 或 addAll 操作。 
返回:
此映射中包含的键的 set 视图

通过这个方法可以用Set集合来接收Map集合的键值,然后通过Set集合的迭代器得到所有的值既是Map集合中键值,便可以通过这些键值来得到Map集合中key对应的value。


package com.wql;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

/**
 * 遍历map集合中的键值
 * 
 * @author wql
 *
 */
public class MapDemo {

    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        Map<Integer, String> map = new HashMap();
        method(map);
    }

    /**
     * 遍历方法
     */
    public static void method(Map<Integer, String> map) {
        // 添加键值
        map.put(1, "张三");
        map.put(8, "李四");
        map.put(6, "王五");
        // 获取map集合的key值
        Set<Integer> set = map.keySet();
        System.out.println(set);

        Iterator<Integer> it = set.iterator();
        while (it.hasNext()) {
            int key = it.next();
            String value = map.get(key);
            System.out.println(key + ":" + value);
        }
    }
}

运行:
这里写图片描述



2. entrySet()方法

entrySet
Set<Map.Entry<K,V>> entrySet()返回此映射中包含的映射关系的 Set 视图。该 set 受映射支持,所以对映射的更改可在此 set 中反映出来,反之亦然。如果对该 set 进行迭代的同时修改了映射(通过迭代器自己的 remove 操作,或者通过对迭代器返回的映射项执行 setValue 操作除外),则迭代结果是不确定的。set 支持元素移除,通过 Iterator.removeSet.remove、removeAll、retainAll 和 clear 操作可从映射中移除相应的映射关系。它不支持 add 或 addAll 操作。 
返回:
此映射中包含的映射关系的 set 视图
package com.wql;

import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

/**
 * 遍历map集合中的键值
 * 
 * @author wql
 *
 */
public class MapDemo2 {

    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        Map<Integer, String> map = new HashMap();
        method(map);
    }

    /**
     * 遍历方法
     */
    public static void method(Map<Integer, String> map) {
        // 添加键值
        map.put(1, "张三");
        map.put(8, "李四");
        map.put(6, "王五");

        Set<Map.Entry<Integer, String>> entrySet = map.entrySet();
        Iterator<Map.Entry<Integer, String>> it = entrySet.iterator();

        while (it.hasNext()) {
            Map.Entry<Integer, String> me = it.next();
            int key = me.getKey();
            String value = map.get(key);
            System.out.println(key + ":" + value);
        }
    }
}

运行:
这里写图片描述


关于Map集合其他介绍:http://blog.csdn.net/qq_36330228/article/details/77434742


posted @ 2017-08-20 11:15  _小龙人  阅读(192)  评论(0编辑  收藏  举报