1. 程式人生 > >Java中Map的 entrySet() 詳解以及用法(四種遍歷map的方式)

Java中Map的 entrySet() 詳解以及用法(四種遍歷map的方式)

Entry

由於Map中存放的元素均為鍵值對,故每一個鍵值對必然存在一個對映關係。 
Map中採用Entry內部類來表示一個對映項,對映項包含Key和Value (我們總說鍵值對鍵值對, 每一個鍵值對也就是一個Entry)
Map.Entry裡面包含getKey()和getValue()方法

Iterator<Map.Entry<Integer, Integer>> it=map.entrySet().iterator();
    while(it.hasNext()) {
        Map.Entry<Integer,Integer> entry=it.next();
        int key=entry.getKey();
        int value=entry.getValue();
        System.out.println(key+" "+value);
    }

entrySet

entrySet是 java中 鍵-值 對的集合,Set裡面的型別是Map.Entry,一般可以通過map.entrySet()得到。

  • entrySet實現了Set介面,裡面存放的是鍵值對。一個K對應一個V。

用來遍歷map的一種方法。

Set<Map.Entry<String, String>> entryseSet=map.entrySet();

for (Map.Entry<String, String> entry:entryseSet) {

    System.out.println(entry.getKey()+","+entry.getValue());

}

即通過getKey()得到K,getValue得到V。

keySet

還有一種是keySet, keySet是鍵的集合,Set裡面的型別即key的型別

Set<String> set = map.keySet();

for (String s:set) {

    System.out.println(s+","+map.get(s));

}

四種遍歷Map方式:

public static void main(String[] args) {

    Map<String, String> map = new HashMap<String, String>();
    map.put("1", "value1");
    map.put("2", "value2");
    map.put("3", "value3");
  
    //第一種:普遍使用,二次取值
    System.out.println("通過Map.keySet遍歷key和value:");
    for (String key : map.keySet()) {
        System.out.println("key= "+ key + " and value= " + map.get(key));
    }
  
    //第二種
    System.out.println("通過Map.entrySet使用iterator遍歷key和value:");
    Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();
    while (it.hasNext()) {
        Map.Entry<String, String> entry = it.next();
        System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
    }
  
    //第三種:推薦,尤其是容量大時
    System.out.println("通過Map.entrySet遍歷key和value");
    for (Map.Entry<String, String> entry : map.entrySet()) {
        System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
    }

    //第四種
    System.out.println("通過Map.values()遍歷所有的value,但不能遍歷key");
    for (String v : map.values()) {
        System.out.println("value= " + v);
    }
 }