Java中Map的 entrySet() 詳解以及用法


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM