Map

1.Map概述

  1.map集合中有 建 ,建頭有個對應的值(映射),數據結構

    一個映射不能包含重複的鍵spa

    每一個鍵最多隻能映射到一個值code

  2.Map和Collection接口的不一樣,對象

    map是雙列集合,Collection是單列集合blog

    Map的鍵是惟一,Collection的子系Set是惟一的排序

    Map集合的數據結構只針對鍵有效  接口

  3.當集合中建重複時,對應的值取到的內容是最後一次添加進去的內容rem

 2.Map集合的功能

  

 1         //返回值被覆蓋的內容
 2         //第一次添加值時,集合中沒有數據,被覆蓋的內容爲null,因此返回null
 3         Map<String, Integer> map = new HashMap<>();
 4         map.put("a", 1);
 5         map.put("a", 3);        //此時輸出,返回值是1
 6         map.put("f", 4);
 7         map.put("t", 2);
 8         System.out.println(map);//輸出結果爲    {a=3, t=2, f=4}
 9         map.size();                //長度
10         map.remove("a");         //刪除指定鍵,與映射值
11         map.containsKey("a");    //是否包含鍵爲"a"的的內容
12         map.containsValue(2);    //是否包含值爲2的內容
13         map.clear();            //清空
14         map.isEmpty();            //是否爲空
15         
16     }

 

 

 3.Map的遍歷get

 

 第一種hash

 1     /*
 2          * 1,首先得到到map中全部鍵,
 3          * 2.在經過鍵得到對應的內容
 4          */
 5         Map<String, Integer> map = new HashMap<>();
 6         map.put("a", 1);
 7         map.put("a", 3);        //此時輸出,返回值是1
 8         map.put("f", 4);
 9         map.put("t", 2);
10     
11         /*
12          * 先把鍵都添加到set集合中,
13          * 在使用set集合的迭代器,
14          * 經過get方法,在獲取對應的值
15          */
16         Set<String> set = map.keySet();
17         Iterator<String> it = set.iterator();
18         while(it.hasNext()) {
19             String s = it.next();
20             Integer a = map.get(s);
21             System.out.println(a+ " ");
22         }

 

 

 第二種遍歷方式

 1     HashMap<String, Integer> map = new HashMap<>();
 2         map.put("a", 1);
 3         map.put("a", 3); // 此時輸出,返回值是1
 4         map.put("f", 4);
 5         map.put("t", 2);
 6         // 獲取鍵值對對象
 7         Set<Map.Entry<String, Integer>> set = map.entrySet();
 8         // 迭代器
 9         Iterator<Map.Entry<String, Integer>> it = set.iterator();
10         while (it.hasNext()) {
11             // 獲取到每一個鍵值對對象
12             Map.Entry<String, Integer> en = it.next();
13             String s = en.getKey();
14             Integer i = en.getValue();
15        System.out.println(s + " " + i);
16         }

 

 第三種

    缺點不能刪除

1      for (Map.Entry<String, Integer> entry : set) {
2             System.out.println(entry.getKey() + " " + entry.getValue());
3         }

  

 3.map遍歷自定義對象

用加強for循環遍歷

須要重寫hashcode,和equals方法

 

4.linkedHashMap

  保證怎麼存怎麼取的集合

 

 5,treemap集合

  排序去重複 treeset和treemap的功能是同樣的

   遍歷自定義對象時,要記得Comparable

相關文章
相關標籤/搜索