Map的四種遍歷方式- 詳解以及用法


Entry

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

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

entrySet

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

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

用來遍歷map的一種方法。

1 Set<Map.Entry<String, String>> entryseSet=map.entrySet();
2  
3 for (Map.Entry<String, String> entry:entryseSet) {
4  
5     System.out.println(entry.getKey()+","+entry.getValue());
6  
7 }

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

keySet

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

1 Set<String> set = map.keySet();
2  
3 for (String s:set) {
4     System.out.println(s+","+map.get(s));
5 }

四種遍歷Map方式:

 1 public static void main(String[] args) {
 2  
 3     Map<String, String> map = new HashMap<String, String>();
 4     map.put("1", "value1");
 5     map.put("2", "value2");
 6     map.put("3", "value3");
 7   
 8     //第一種:普遍使用,二次取值
 9     System.out.println("通過Map.keySet遍歷key和value:");
10     for (String key : map.keySet()) {
11         System.out.println("key= "+ key + " and value= " + map.get(key));
12     }
13   
14     //第二種
15     System.out.println("通過Map.entrySet使用iterator遍歷key和value:");
16     Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();
17     while (it.hasNext()) {
18         Map.Entry<String, String> entry = it.next();
19         System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
20     }
21   
22     //第三種:推薦,尤其是容量大時
23     System.out.println("通過Map.entrySet遍歷key和value");
24     for (Map.Entry<String, String> entry : map.entrySet()) {
25         System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
26     }
27  
28     //第四種
29     System.out.println("通過Map.values()遍歷所有的value,但不能遍歷key");
30     for (String v : map.values()) {
31         System.out.println("value= " + v);
32     }
33  }

to:https://blog.csdn.net/q5706503/article/details/85122343


免責聲明!

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



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