91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java集合類之Map集合的特點及使用方法是什么

發布時間:2022-08-29 16:35:53 來源:億速云 閱讀:107 作者:iii 欄目:開發技術

這篇文章主要講解了“Java集合類之Map集合的特點及使用方法是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Java集合類之Map集合的特點及使用方法是什么”吧!

1、Map集合概述和使用

1.1 Map集合概述

java.util
接口 Map<K,V>

類型參數:

K - 此映射所維護的鍵的類型

V - 映射值的類型

public interface Map<K,V>

將鍵映射到值的對象。一個映射不能包含重復的鍵;每個鍵最多只能映射到一個值。

此接口取代 Dictionary 類,后者完全是一個抽象類,而不是一個接口。

Map 是一種鍵-值對(key-value)集合,Map 集合中的每一個元素都包含一個鍵對象和一個值對象。其中,鍵對象不允許重復,而值對象可以重復,并且值對象還可以是 Map 類型的,就像數組中的元素還可以是數組一樣。

Map 接口主要有兩個實現類:HashMap 類和 TreeMap 類。其中,HashMap 類按哈希算法來存取鍵對象,而 TreeMap 類可以對鍵對象進行排序。

Map 接口提供三種collection 視圖,允許以鍵集、值集或鍵-值映射關系集的形式查看某個映射的內容。映射順序 定義為迭代器在映射的 collection 視圖上返回其元素的順序。某些映射實現可明確保證其順序,如 TreeMap 類;另一些映射實現則不保證順序,如HashMap 類。

注:將可變對象用作映射鍵時必須格外小心。當對象是映射中某個鍵時,如果以影響 equals 比較的方式更改了對象的值,則映射的行為將是不確定的。此項禁止的一種特殊情況是不允許某個映射將自身作為一個鍵包含。雖然允許某個映射將自身作為值包含,但請格外小心:在這樣的映射上equals 和 hashCode 方法的定義將不再是明確的。

1.2 Map集合常用方法

方法說明
boolean equals(Object o)比較指定的對象與此映射是否相等
V get(Object key)返回指定鍵所映射的值;如果此映射不包含該鍵的映射關系,則返回 null
V put(K key, V value)將指定的值與此映射中的指定鍵關聯(可選操作)
void clear()從此映射中移除所有映射關系(可選操作)
boolean containsKey(Object key)如果此映射包含指定鍵的映射關系,則返回 true
boolean containsValue(Object value)如果此映射將一個或多個鍵映射到指定值,則返回 true
boolean isEmpty()如果此映射未包含鍵-值映射關系,則返回 true
V get(Object key)返回指定鍵所映射的值;如果此映射不包含該鍵的映射關系,則返回 null
Set keySet()返回此映射中包含的鍵的 Set 視圖
Set<Map.Entry<K,V>> entrySet()返回此映射中包含的映射關系的 Set 視圖

代碼示例:

import java.util.*;

public class CollectionsDemo {

   public static void main(String[] args) {
      Map m1 = new HashMap(); 
      m1.put("Zara", "8");
      m1.put("Mahnaz", "31");
      m1.put("Ayan", "12");
      m1.put("Daisy", "14");
      System.out.println();
      System.out.println(" Map Elements");
      System.out.print("\t" + m1);
   }
}
package com.ithmm_01;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;

public class MapDemo01 {
    public static void main(String[] args) {
        //創建集合對象
        Map<String,String> map = new HashMap<String,String>();

        //往集合添加元素
        map.put("2101","zhangxiaohau");
        map.put("2102","wangxiaoer");
        map.put("2103","liuyidao");


        //根據鍵刪除對應元素
//        System.out.println(map.remove("2102"));//wangxiaoer
//        System.out.println(map.remove("2105"));//null

        //移除所有鍵值對元素
        //map.clear();//{}

        // boolean containsKey(Object key)
        //          如果此映射包含指定鍵的映射關系,則返回 true。

        System.out.println(map.containsKey("2101"));//true
        // boolean containsValue(Object value)
        //          如果此映射將一個或多個鍵映射到指定值,則返回 true。
        System.out.println(map.containsValue("liuyidao"));//true

        //boolean isEmpty() |如果此映射未包含鍵-值映射關系,則返回 true。
        System.out.println(map.isEmpty());//false

        System.out.println(map.size());//3

//        V get(Object key)	返回指定鍵所映射的值;如果此映射不包含該鍵的映射關系,則返回 null。
        System.out.println(map.get("2101"));//zhangxiaohau

        System.out.println(map.get("2102")); //wangxiaoer


//        Set keySet()	返回此映射中包含的鍵的 Set 視圖。
        System.out.println(map.keySet());//3[2103, 2102, 2101]

//        Collection<V> values()
//        返回此映射中包含的值的 Collection 視圖。
        Collection<String> values = map.values();
        for(String value : values){
            System.out.println(value);//liuyidao  wangxiaoer  zhangxiaohau

        }
        //輸出集合對象
        System.out.println(map);//


    }
}

總結:Map 接口中鍵和值一一映射. 可以通過鍵來獲取值。

給定一個鍵和一個值,你可以將該值存儲在一個 Map 對象。之后,你可以通過鍵來訪問對應的值。

當訪問的值不存在的時候,方法就會拋出一個 NoSuchElementException 異常。

當對象的類型和 Map 里元素類型不兼容的時候,就會拋出一個 ClassCastException 異常。

當在不允許使用 Null 對象的 Map 中使用 Null 對象,會拋出一個 NullPointerException 異常。

當嘗試修改一個只讀的 Map 時,會拋出一個 UnsupportedOperationException 異常。

1.3 Map集合的遍歷

方法一:

操作:

  • 獲取所有鍵的集合,用keySet()方法實現

  • 遍歷鍵的集合,獲取到每一個鍵,用增強for實現

  • 根據鍵去找值。用get(Object key)方法實現

代碼示例:

package com.ithmm_01;
/**
 *  - 獲取所有鍵的集合,用keySet()方法實現
 *  - 遍歷鍵的集合,獲取到每一個鍵,用增強for實現
 *  - 根據鍵去找值。用get(Object key)方法實現
 */

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class MapDemo02 {
    public static void main(String[] args) {
        //創建集合對象
        Map<String, String> map = new HashMap<String, String>();

        //往集合添加元素
        map.put("2101", "zhangxiaohau");
        map.put("2102", "wangxiaoer");
        map.put("2103", "liuyidao");

        //獲取所有鍵的集合,用keySet()方法實現
        Set<String> keySet = map.keySet();

        //遍歷鍵的集合,獲取到每一個鍵,用增強for實現
        for (String key :keySet){
            // 根據鍵去找值。用get(Object key)方法實現
            String value = map.get(key);
            System.out.println(key + "," +value);
        }

    }
}

控制臺輸出:

2103,liuyidao
2102,wangxiaoer
2101,zhangxiaohau

方法二:

操作:

1.獲取所有鍵值對對象的集合

Set<Map.Entry<K,V>> entrySet()返回此映射中包含的映射關系的 Set 視圖。

2.遍歷鍵值對對象的集合,得到每一個鍵值對對象

用增強for實現,得到每一個Map.Entry

3.根據鍵值對對象獲取鍵和值

用getKey()方法得到鍵

用getValue()方法得到值

代碼示例:

package com.ithmm_01;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class MapDemo03 {
    public static void main(String[] args) {
        //創建集合對象
        Map<String, String> map = new HashMap<String, String>();

        //往集合添加元素
        map.put("2101", "zhangxiaohau");
        map.put("2102", "wangxiaoer");
        map.put("2103", "liuyidao");

        //獲取所有鍵值對對象的集合
        Set<Map.Entry<String, String>> entrySet = map.entrySet();

        //遍歷鍵值對對象的集合,得到每一個鍵值對對象
        //用增強for實現,得到每一個Map.Entry
        for (Map.Entry<String, String> ss : entrySet) {
            //根據鍵值對對象獲取鍵和值
            String key = ss.getKey();
            String value = ss.getValue();

            System.out.println(key + "," + value);

        }
    }
}

控制臺輸出:

2103,liuyidao
2102,wangxiaoer
2101,zhangxiaohau

感謝各位的閱讀,以上就是“Java集合類之Map集合的特點及使用方法是什么”的內容了,經過本文的學習后,相信大家對Java集合類之Map集合的特點及使用方法是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

台北县| 沁源县| 格尔木市| 武隆县| 潮安县| 平度市| 岱山县| 宾川县| 穆棱市| 台山市| 汽车| 苏尼特右旗| 岚皋县| 磐石市| 常山县| 凌云县| 攀枝花市| 武强县| 屏南县| 田东县| 宁德市| 茌平县| 莆田市| 亳州市| 康保县| 镇巴县| 自治县| 兰州市| 三亚市| 松阳县| 黔东| 旺苍县| 邵武市| 抚宁县| 万山特区| 工布江达县| 江门市| 忻州市| 宣威市| 北宁市| 东兴市|