中文在线免费看视频_国产成人精品亚洲日本在线观看_亚洲精品第一综合99久久_国产亚洲精品日韩综合网

當前位置: 首頁 / 技術干貨 / 正文
Map接口與HashMap集合

2022-12-22

map 集合 java

Map接口簡介

Map接口是一種雙列集合,它的每個元素都包含一個鍵對象Key和值對象Value,鍵和值對象之間存在一種對應關系,稱為映射。從Map集合中訪問元素時,只要指定了Key,就能找到對應的Value。

Map接口中的常用方法如下表。

1

HashMap集合

HashMap集合是Map接口的一個實現類,用于存儲鍵值映射關系,但HashMap集合沒有重復的鍵并且鍵值無序。接下來通過一個案例學習HashMap的用法。

Java
import java.util.HashMap;

public class Example14 {
    public static void main(String[] args) {
        HashMap map = new HashMap(); // 創建Map對象
        map.put("1", "張三"); // 存儲鍵和值
        map.put("2", "李四");
        map.put("3", "王五");
        System.out.println("1:" + map.get("1")); // 根據鍵獲取值
        System.out.println("2:" + map.get("2"));
        System.out.println("3:" + map.get("3"));
    }
}

Map集合中的鍵具有唯一性,現在向Map集合中存儲一個相同的鍵看看會出現什么情況,下面增加一行代碼,如下所示: 

Java
map.put("3", "趙六");

 Map中仍然只有3個元素,只是第二次添加的值“趙六”覆蓋了原來的值“王五”,這也證實了Map中的鍵必須是唯一的,不能重復,如果存儲了相同的鍵,后存儲的值則會覆蓋原有的值,簡而言之就是:鍵相同,值覆蓋。

在程序開發中,經常需要取出Map中所有的鍵和值,那么如何遍歷Map中所有的鍵值對呢?有兩種方式可以實現。

第一種方式就是先遍歷Map集合中所有的鍵,再根據鍵獲取相應的值。接下來通過一個案例來演示先遍歷Map集合中所有的鍵,再根據鍵獲取相應的值。 

Java
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;

public class Example15 {
    public static void main(String[] args) {
        HashMap map = new HashMap(); // 創建Map集合
        map.put("1", "張三"); // 存儲鍵和值
        map.put("2", "李四");
        map.put("3", "王五");
        Set keySet = map.keySet(); // 獲取鍵的集合
        Iterator it = keySet.iterator(); // 迭代鍵的集合
        while (it.hasNext()) {
            Object key = it.next();
            Object value = map.get(key); // 獲取每個鍵所對應的值
            System.out.println(key + ":" + value);
        }
    }
}

 首先調用Map對象的KeySet()方法,獲得存儲Map中所有鍵的Set集合,然后通過Iterator迭代Set集合的每一個元素,即每一個鍵,最后通過調用get(String key)方法,根據鍵獲取對應的值。

Map集合的另外一種遍歷方式是先獲取集合中的所有的映射關系,然后從映射關系中取出鍵和值。接下來通過一個案例演示這種遍歷方式。

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

public class Example16 {
    public static void main(String[] args) {
        HashMap map = new HashMap(); // 創建Map集合
        map.put("1", "張三"); // 存儲鍵和值
        map.put("2", "李四");
        map.put("3", "王五");
        Set entrySet = map.entrySet(); // 返回此映射中包含的映射關系的Set視圖
        Iterator it = entrySet.iterator(); // 獲取Iterator對象
        while (it.hasNext()) {
            // 獲取集合中鍵值對映射關系
            Map.Entry entry = (Map.Entry) (it.next());
            Object key = entry.getKey(); // 獲取Entry中的鍵
            Object value = entry.getValue(); // 獲取Entry中的值
            System.out.println(key + ":" + value);
        }
    }
}

 首先調用Map對象的entrySet()方法獲得存儲在Map中所有映射的Set集合,這個集合中存放了Map.Entry類型的元素(Entry是Map內部接口),每個Map.Entry對象代表Map中的一個鍵值對,然后迭代Set集合,獲得每一個映射對象,并分別調用映射對象的getKey()和getValue()方法獲取鍵和值。

在Map中,還提供了一些操作集合的常用方法,例如,values()方法用于得到map實例中所有的value,返回值類型為Collection;size()方法獲取map集合類的大小;containsKey()方法用于判斷是否包含傳入的鍵;containsValue()方法用于判斷是否包含傳入的值;remove()方法用于根據key移除map中的與該key對應的value等。

接下來通過一個案例演示Map這些方法的使用。 

Java
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;

public class Example17 {
    public static void main(String[] args) {
        HashMap map = new HashMap(); // 創建Map集合
        map.put("1", "張三"); // 存儲鍵和值
        map.put("3", "李四");
        map.put("2", "王五");
        map.put("4", "趙六");
        System.out.println("集合大小為:" + map.size());
        System.out.println("判斷是否包含傳入的鍵:" + map.containsKey("2"));
        System.out.println("判斷是否包含傳入的值:" + map.containsValue("王五"));
        System.out.println("移除鍵為1的值是:" + map.remove("1"));
        Collection values = map.values();
        Iterator it = values.iterator();
        while (it.hasNext()) {
            Object value = it.next();
            System.out.println(value);
        }
    }
}

 從上面的例子可以看出,HashMap集合迭代出來元素的順序和存入的順序是不一致的。如果想讓這兩個順序一致,可以使用Java中提供的LinkedHashMap類,它是HashMap的子類,與LinkedList一樣,它也使用雙向鏈表來維護內部元素的關系,使Map元素迭代的順序與存入的順序一致。

接下來通過一個案例學習LinkedHashMap的用法: 

Java
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Set;

public class Example18 {
    public static void main(String[] args) {
        LinkedHashMap map = new LinkedHashMap(); // 創建Map集合
        map.put("1", "張三"); // 存儲鍵和值
        map.put("2", "李四");
        map.put("3", "王五");
        Set keySet = map.keySet();
        Iterator it = keySet.iterator();
        while (it.hasNext()) {
            Object key = it.next();
            Object value = map.get(key); // 獲取每個鍵所對應的值
            System.out.println(key + ":" + value);
        }
    }
}

分享: 更多

上一篇:TreeSet集合

下一篇:TreeMap集合

好程序員公眾號

  • · 剖析行業發展趨勢
  • · 匯聚企業項目源碼

好程序員開班動態

More+
  • HTML5大前端 <高端班>

    開班時間:2021-04-12(深圳)

    開班盛況

    開班時間:2021-05-17(北京)

    開班盛況
  • 大數據+人工智能 <高端班>

    開班時間:2021-03-22(杭州)

    開班盛況

    開班時間:2021-04-26(北京)

    開班盛況
  • JavaEE分布式開發 <高端班>

    開班時間:2021-05-10(北京)

    開班盛況

    開班時間:2021-02-22(北京)

    開班盛況
  • Python人工智能+數據分析 <高端班>

    開班時間:2021-07-12(北京)

    預約報名

    開班時間:2020-09-21(上海)

    開班盛況
  • 云計算開發 <高端班>

    開班時間:2021-07-12(北京)

    預約報名

    開班時間:2019-07-22(北京)

    開班盛況
IT培訓IT培訓
在線咨詢
IT培訓IT培訓
試聽
IT培訓IT培訓
入學教程
IT培訓IT培訓
立即報名
IT培訓

Copyright 2011-2023 北京千鋒互聯科技有限公司 .All Right 京ICP備12003911號-5 京公網安備 11010802035720號

中文在线免费看视频_国产成人精品亚洲日本在线观看_亚洲精品第一综合99久久_国产亚洲精品日韩综合网

            99re免费视频精品全部| 亚洲国产欧美日韩另类综合| 99精品偷自拍| 日韩主播视频在线| 久久亚洲精精品中文字幕早川悠里 | 99精品久久久久久| 日韩精品免费视频人成| 欧美激情一区在线| 91麻豆精品91久久久久同性| 国产不卡视频在线播放| 亚洲电影一级黄| 国产精品成人一区二区三区夜夜夜| 欧美日韩亚洲综合一区| 国产91对白在线观看九色| 三级欧美在线一区| 中文字幕中文字幕一区二区| 日韩一区二区三区四区| 色欧美88888久久久久久影院| 精品写真视频在线观看| 亚洲一区二区三区四区中文字幕| 久久精品无码一区二区三区| 欧美久久久久久久久中文字幕| 成人美女视频在线观看| 蜜乳av一区二区| 亚洲6080在线| 亚洲免费在线看| 国产精品日日摸夜夜摸av| 欧美成人欧美edvon| 欧美无砖专区一中文字| 91欧美一区二区| 国产成人精品1024| 久久国产精品露脸对白| 亚洲午夜精品在线| 中文字幕一区二区三区在线观看 | 欧美性大战久久久久久久蜜臀 | 亚洲精品中文在线影院| 国产亚洲制服色| 欧美成人在线直播| 日韩午夜激情视频| 欧美日韩国产一二三| 欧美在线一区二区三区| 色综合久久久久| 91美女福利视频| 91视视频在线观看入口直接观看www | 亚洲国产你懂的| 一区二区三区毛片| 亚洲欧美日韩国产一区二区三区 | 一区二区在线看| 亚洲伦理在线免费看| 国产精品免费av| 国产精品久99| 国产精品久久久久久久久久久免费看| 国产日产亚洲精品系列| 国产蜜臀av在线一区二区三区| 2020国产成人综合网| 久久久精品日韩欧美| 2021国产精品久久精品| 国产亚洲福利社区一区| 国产网红主播福利一区二区| 日本一区二区三区久久久久久久久不 | 亚洲日本一区二区三区| 国产精品国产成人国产三级| 国产精品国产三级国产aⅴ原创| 国产精品久久久久婷婷| 亚洲欧美在线观看| 亚洲日本韩国一区| 亚洲午夜在线电影| 日韩1区2区3区| 激情av综合网| www.日韩精品| 欧美视频一区二区三区| 91精品国产综合久久久蜜臀图片| 欧美哺乳videos| 中文字幕精品综合| 亚洲一区自拍偷拍| 蜜臀久久99精品久久久久久9| 久久国产尿小便嘘嘘尿| 成人av电影在线观看| 91久久国产最好的精华液| 欧美区在线观看| 久久久一区二区三区捆绑**| 中文字幕亚洲精品在线观看| 亚洲已满18点击进入久久| 美日韩一区二区三区| 成人免费视频网站在线观看| 欧美中文字幕不卡| 精品久久国产老人久久综合| **网站欧美大片在线观看| 丝袜a∨在线一区二区三区不卡| 韩国毛片一区二区三区| 91麻豆国产福利精品| 日韩一二三四区| 日韩一区日韩二区| 奇米777欧美一区二区| av在线综合网| 日韩视频不卡中文| 日韩理论片一区二区| 蜜臀av性久久久久蜜臀av麻豆| 国产69精品久久777的优势| 欧美视频在线观看一区| 欧美国产亚洲另类动漫| 日韩精品亚洲专区| 99免费精品在线观看| 日韩一区二区免费在线电影| 国产精品电影一区二区| 免费精品视频在线| 97久久精品人人做人人爽| 精品久久久久久最新网址| 亚洲午夜在线观看视频在线| 成人网男人的天堂| 在线综合视频播放| 欧美成人精品1314www| 亚洲综合在线五月| 波多野结衣视频一区| 精品国产三级电影在线观看| 亚洲国产精品麻豆| 91亚洲国产成人精品一区二三 | 国产亚洲精品精华液| 亚洲国产精品成人综合色在线婷婷| 亚洲精品国产一区二区三区四区在线 | 91免费看视频| 欧美成人一级视频| 一区二区三区美女视频| 国产一区二区女| 欧美精品九九99久久| 国产精品久久二区二区| 久久精品99国产精品| 色拍拍在线精品视频8848| 精品电影一区二区| 日本免费在线视频不卡一不卡二| 欧美在线观看视频一区二区三区| 国产精品成人网| 成人免费av在线| 国产精品欧美一区喷水| 国产精品小仙女| 久久久久久久久伊人| 极品少妇一区二区| 精品电影一区二区| 另类小说色综合网站| 日韩小视频在线观看专区| 日本午夜一区二区| 日韩一区二区免费在线电影 | 亚洲一区视频在线| 欧美视频一区二区在线观看| 亚洲自拍都市欧美小说| 欧美视频在线播放| 午夜久久电影网| 91麻豆精品国产91久久久久久久久| 亚洲网友自拍偷拍| 欧美性色黄大片| 亚洲成av人片在www色猫咪| 欧美日韩精品三区| 日本欧美韩国一区三区| 日韩一级大片在线| 国产精品99久久久| 亚洲天堂免费在线观看视频| 色综合色狠狠综合色| 亚洲无线码一区二区三区| 在线不卡a资源高清| 精品亚洲成av人在线观看| 欧美国产成人精品| 91视视频在线直接观看在线看网页在线看| 亚洲乱码日产精品bd| 91麻豆精品国产| 国产乱码精品一区二区三| 中文字幕一区二区三区av| 91福利小视频| 麻豆久久久久久| 日本一区二区高清| 在线观看日韩一区| 男女男精品网站| 国产精品女上位| 欧美日韩一二区| 国产综合一区二区| 亚洲色欲色欲www在线观看| 777奇米四色成人影色区| 国产一区二区在线看| 亚洲另类在线一区| 欧美一区二区三区视频| 国产成人亚洲综合色影视| 一区二区三区中文字幕精品精品| 欧美亚一区二区| 国产在线精品一区二区夜色| 亚洲天堂av一区| 日韩午夜在线观看| 99国产精品久久久久| 免费人成精品欧美精品| 国产精品不卡一区二区三区| 91精品一区二区三区在线观看| 国产精品资源在线看| 一区二区三区免费网站| 国产日韩视频一区二区三区| 欧美亚洲一区二区在线| 国产麻豆视频一区| 天天色天天爱天天射综合| 国产精品高清亚洲| 日韩视频免费直播| 欧美视频日韩视频在线观看| 国产91丝袜在线18| 麻豆精品视频在线观看视频|