1. 程式人生 > >Map集合遍歷方法

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);
        }
    }
}

執行:
這裡寫圖片描述