首頁 > 軟體

Java基礎Map集合詳析

2022-04-01 19:02:31

一、概述

  • Interface Map k:鍵的型別;V:值的型別

  • 將鍵對映到值的物件;不能包含重複的鍵;每個鍵可以對映到最多一個值

二、建立Map集合的物件方式

  • 1.使用多型的方式
  • 2.具體實現類HashMap
public static void main(String[] args) {
        //建立Map集合物件
        Map<String,String> m=new HashMap<String,String>();
        //新增元素使用put方法,預設自然排序
        m.put("02","李四");
        m.put("04","趙六");
        m.put("01","張三");
        m.put("03","王五");
        System.out.println(m);
    }
}

三、Map集合的常用方法

方法名說明
V put(K key,V value)新增元素,新增重複鍵值元素會覆蓋
V remove(Object key)根據鍵刪除鍵值對元素
void clear()清除所有的鍵值對元素
Boolean containsKey(Object key)判斷集合是否包含指定的鍵,包含返回true
Boolean containsValue(Object value)判斷集合是否包含指定的值,包含返回true
Boolean isEmpty()判斷集合是否為空
int size()獲取集合的長度,也就是鍵值對的個數
public class MapDemo01 {
    public static void main(String[] args) {
        //建立Map集合物件
        Map<String,String> m=new HashMap<String,String>();
        //新增元素,put方法
        m.put("1","張三");
        m.put("2","李四");
        m.put("3","王五");
        m.put("4","趙六");
        // System.out.println(m);
        //根據鍵刪除鍵值對元素
        System.out.println(m.remove("3"));//切記鍵是什麼型別就寫什麼型別,不然會返回null
        System.out.println(m);
        //清除所有鍵值對元素
        m.clear();
        //Boolean isEmpty()判斷集合是否為空
        System.out.println(m.isEmpty());
       // System.out.println(m);
        //Boolean containsKey(Object key);判斷集合中是否包含指定的鍵
        System.out.println(m.containsKey("5"));//切記鍵是什麼型別就寫什麼型別,不然會返回null
        //Boolean containsValue(Object value)判斷集合是否包含指定的值,包含返回true
        System.out.println(m.containsValue("張三"));
        //int size()獲取集合的長度,也就是鍵值對的個數
        System.out.println(m.size());
    }
}
​

四、Map的獲取方法

方法名說明
V get(Object key)根據鍵獲取值
Set<K>keySet()獲取所有鍵的集合
Collection<V>values()獲取所有值的集合
Set<Map.Entry<K,V>>entrySet()獲取所有鍵值對物件的集合
public class MapDemo02 {
    public static void main(String[] args) {
        //建立Map物件
        Map<String,String> m=new HashMap<String,String>();
        //新增元素
        m.put("1","張三");
        m.put("3","李四");
        m.put("4","王五");
        m.put("2","趙六");
//        System.out.println(m);
        //V get(Object key)根據鍵獲取值
        System.out.println(m.get("3"));//要注意鍵的型別,型別不對會報null
        //Set<K>keySet()獲取所有鍵的集合,因為返回的是個集合,所以用增強for遍歷
        Set<String> k=m.keySet();
        for (String key:k){
            System.out.println(key);
        }
        //Collection<V>values()獲取所有值的集合,注意,他會按照鍵的排序對值進行排序
        Collection<String> c=m.values();
        for (String v:c){
            System.out.println(v);
        }
​
    }
}

五、Map集合的遍歷方式

方式一:

  • 1.先獲取Map集合中的所有鍵的集合,使用方法setKey()
  • 2.遍歷所有鍵的集合獲取每一個鍵
  • 3.通過每一個鍵獲取相對應的值 getValues方法
public static void main(String[] args) {
        //方式一
        //建立Map集合物件
        Map<String,String> m=new HashMap<String,String>();
        //新增鍵值對
        m.put("1","張三");
        m.put("3","李四");
        m.put("4","王五");
        m.put("2","趙六");
        //獲取所有鍵的集合
        Set<String>s=m.keySet();
        //遍歷
        for (String key:s){
            //再通過鍵獲取相對應的值
            String value=m.get(key);
            System.out.println(key+","+value);
        }
    }
}

方式二:

  • 1.獲取所有鍵值對的集合,使用Set<Map.Entry<K,V>>entrySet()方法
  • 2.遍歷這個集合獲得每一個鍵值對 物件也就是Map.Entry物件
  • 3.再根據鍵值對物件獲取值和鍵

getKey()獲取鍵

getValue()獲取值

public static void main(String[] args) {
//        //方式一
//        //建立Map集合物件
//        Map<String,String> m=new HashMap<String,String>();
//        //新增鍵值對
//        m.put("1","張三");
//        m.put("3","李四");
//        m.put("4","王五");
//        m.put("2","趙六");
//        //獲取所有鍵的集合
//        Set<String>s=m.keySet();
//        //遍歷
//        for (String key:s){
//            //再通過鍵獲取相對應的值
//            String value=m.get(key);
//            System.out.println(key+","+value);
//        }
        //方式二
        //建立Map集合物件
        Map<String,String> m=new HashMap<String,String>();
        //新增鍵值對
        m.put("1","張三");
        m.put("3","李四");
        m.put("4","王五");
        m.put("2","趙六");
        //獲取所有鍵值對的集合Set<Map.Entry<K,V>>entrySet()
        Set<Map.Entry<String,String>> s= m.entrySet();
        //遍歷該集合
        for (Map.Entry<String,String> ss:s){
            //通過鍵值對物件獲取鍵值
            String key=ss.getKey();
            //通過鍵值對物件獲取值
            String value=ss.getValue();
            System.out.println(key+","+value);
​
        }
    }
}

 到此這篇關於Java基礎Map集合詳析的文章就介紹到這了,更多相關Java Map集合內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com