雙列集合Map不再難懂:輕鬆掌握這些知識點!

2023年12月04日14:58:06 科技 1537

雙列集合Map不再難懂:輕鬆掌握這些知識點! - 天天要聞

“這裡是雲端源想IT,幫你輕鬆學IT”

嗨~ 今天的你過得還好嗎?

要相信

所有的不美好都是為了迎接美好,

所有的困難都會為努力讓道。


- 2023.12.04 -

Map是一種雙列集合,一個元素包含兩個值,一個是Key,一個是Value。Map集合中的元素,key和value的數據類型可以相同,也可以不同。一個映射不能包含重複的鍵;每個鍵最多只能有一個值。

今天我們繼續探索java集合的世界,這次我們要聊的主題是——雙列集合Map。


首先,讓我們來理解一下什麼是雙列集合。在Java中,集合是一種用於存儲對象的容器,而雙列集合則是一種可以同時通過兩個鍵(Key)來訪問元素的集合。聽起來有些複雜?別擔心,接下來我會用最簡單的語言,帶你走進Map的世界。


雙列集合Map不再難懂:輕鬆掌握這些知識點! - 天天要聞


一、概述

現實生活中,我們常會看到這樣的一種集合:IP地址與主機名,身份證號與個人,學號與學生等,這種一一對應的關係,就叫做映射。Java提供了專門的集合類用來存放這種對象關係的對象,即java.util.Map接口。 Map接口下的集合與Collection 接口下的集合,他們的存儲形式有所不同,如下圖:

雙列集合Map不再難懂:輕鬆掌握這些知識點! - 天天要聞

Collection 集合,元素是獨立的,存儲的元素是一個一個的存儲。Map中的集合,元素是成對出現。每個元素由鍵與值兩部分組成,通過鍵可以找到所對應的值。所以我們前面所說 Collection是單列集合,而Map為雙列集合。


需要注意:Map中的鍵不能重複,值可以重複,並且每個鍵只能對應一個值。


二、Map 常用子類

Map接口也有很多子類,這裡我們主要講解常用的HashMap集合和LinkedHashMap集合。

雙列集合Map不再難懂:輕鬆掌握這些知識點! - 天天要聞

HashMap<K,V>

存儲數據採用哈希表結構,元素的存取順序不能保證一致。


由於要保證鍵的唯一,不重複,需要重寫鍵的hashCode()方法,equals()方法。我們之前所學的HashSet 底層,實際上也是new了一個HashMap,但是只是使用了 HashMap中的 K,所以HashSet是不允許重複值的。


LinkedHashMap<K,V>

HashMap下有個子類LinkedHashMap,存儲數據採用的哈希表結構+鏈表結構。

通過鏈表結構可以保證元素的存取順序一致;通過哈希表結構可以保證的鍵的唯一、不重複,需要重寫鍵的hashCode()方法、equals()方法。

Set與Map之間的關係非常密切,從Java源碼來看,Java是先實現了Map,然後通過包裝一個所有value都為null的Map,就實現了Set集合。

你還在苦惱找不到真正免費的編程學習平台嗎?可以試試雲端源想!課程視頻、在線書籍、在線編程、實驗場景模擬、一對一諮詢……你想要的全部學習資源這裡都有,重點是統統免費!點這裡即可進入:雙列集合Map不再難懂:輕鬆掌握這些知識點! - 天天要聞


而我們在遍歷Map集合時,就可以從每一個鍵值對對象中獲取對應的鍵,然後找到對應的值。


4.1鍵找值方式

在Map集合中,為我們提供了一個方法

  • keySet() 獲取Map中所有的鍵,由於鍵是唯一的,所以返回一個Set集合存儲所有的鍵`。

那我們就可以遍歷這個Set集合,通過 Entry的方法

  • public V getValue():獲取Entry對象中的Value值。


4.2 鍵值對方式

在Map集合中也提供了獲取所有Entry對象的方法:

public Set<Map.Entry<K,V>> entrySet(): 獲取到Map集合中所有的鍵值對對象的集合(Set集合)。

雙列集合Map不再難懂:輕鬆掌握這些知識點! - 天天要聞


那我們就可以通過這個方法,獲取Map集合中,所有的鍵值對(Entry)對象的Set集合,然後遍歷包含Entry對象的Set集合,得到每一個Entry對象。通過鍵值對(Entry)對象,獲取Entry對象中的鍵與值。 方法提示:getkey() getValue()。

public class Demo3Map {
public static void main(String[ ] args) {

//方法一:keySet遍歷key+value:
//創建集合對象
Map<String, Student> studentMap = new HashMap<>();
//將對應的對象放到map中
studentMap.put("N001", new Student("叮噹", 7));
studentMap.put("N002", new Student("糖糖", 7));
studentMap.put("N003", new Student("熙熙", 7));
//獲取 map集合中的所有key
Set<String> strings = studentMap.keySet();
//遍歷 key的集合,通過get()獲取沒一個value
for (String key : strings) {
Student student = studentMap.get(key);
System.out.println("studentmap == key="+key+" value="+ student);
}

//方法二:entrySet遍歷key+value:
Set<Map.Entry<String, Student>> entries = studentMap.entrySet();
for (Map.Entry<String, Student> entry : entries) {
String key = entry.getKey();
Student value = entry.getValue();
System.out.println("studentmap 方式2 == key="+key+" value="+ value);
}
}
}

雙列集合Map不再難懂:輕鬆掌握這些知識點! - 天天要聞

Map在實際應用中非常廣泛,例如在數據庫中存儲和查詢數據、在緩存中存儲和獲取數據、在處理用戶輸入和輸出時進行轉換等。通過使用Map,我們可以更高效地處理複雜的數據結構和業務邏輯。

總的來說,Map是Java集合框架中的一個重要組成部分,它的強大功能和靈活應用為我們的編程工作帶來了極大的便利。希望通過今天的學習,你能對Map有一個更深入的理解,並能在實際編程中靈活運用。


雙列集合Map不再難懂:輕鬆掌握這些知識點! - 天天要聞

我們下期再見!


END

文案編輯|雲端學長

文案配圖|雲端學長

內容由:雲端源想分享


雙列集合Map不再難懂:輕鬆掌握這些知識點! - 天天要聞

科技分類資訊推薦

阿維塔全球研發中心啟用,與華為聯合共創進入新階段 - 天天要聞

阿維塔全球研發中心啟用,與華為聯合共創進入新階段

近日,阿維塔全球研發中心正式啟用,可容納超過1000人。接近阿維塔的知情人士透露,該辦公大樓於2024年12月啟動裝修,其核心功能是承載阿維塔與華為聯合共創團隊的協同工作。此次全球研發中心的落成啟用,預示着阿維塔與華為的聯合共創將進入更大規
銷量承壓、動銷欠佳,高玉玲如何讓海信經銷商“脫困”? - 天天要聞

銷量承壓、動銷欠佳,高玉玲如何讓海信經銷商“脫困”?

文/曹雙濤編輯/楊博丞2025年按照既定目標,海信集團整體營收需達到3000億元。但2024年除高玉玲接棒代慧忠成為海信家電董事長,網傳海信裁員3萬人、裁員比例高達20%~30%外。公開數據顯示,2024年海信集團營收2143億元。另據海信家電發布的2024年年報顯示,當年海信家電營收和歸母凈利潤分別同比增長8.35%和17.99%,分別至9...
1699元能買到!榮耀Power有這些優缺點,選它續航焦慮真沒了! - 天天要聞

1699元能買到!榮耀Power有這些優缺點,選它續航焦慮真沒了!

有一天,一款主流手機的電池容量來到了8000mAh,且最關鍵的是,這樣的產品並沒有過多的犧牲手感,甚至可以說手感比主流旗艦機還好,這樣的一款手機也許會在其他方面稍微有所妥協,但不得不說,它確實從根源上杜絕了我們的續航焦慮問題。沒錯了!今天咱們來聊聊榮耀POWER,一款定價在千元左右產品,按照筆者的理解,榮耀是將...
倒計時3天!第二屆“興智杯”全國人工智能創新應用大賽即將啟動,線上直播預約開啟 - 天天要聞

倒計時3天!第二屆“興智杯”全國人工智能創新應用大賽即將啟動,線上直播預約開啟

前期,工業和信息化部、科學技術部、深圳市人民政府共同主辦了首屆“興智杯”全國人工智能創新應用大賽(以下簡稱“大賽”),以需求為牽引,推動了一批關鍵技術加快突破,加快人工智能與重點行業融合賦能,成為了目前國內規模最大、參賽主體最豐富的人工智能專業賽事。為進一步發揮“以賽促研、以賽促用、以賽育人”的作用...
國產芯片殺瘋了!利潤暴漲26倍,這些小芯片藏着大突破 - 天天要聞

國產芯片殺瘋了!利潤暴漲26倍,這些小芯片藏着大突破

最近翻看國產芯片企業的成績單,可把我這個外行人看樂了——利潤動輒漲個兩三倍都是常規操作,最誇張的翻了26倍!您別誤會,這可不是在炒股,而是實打實的造芯片掙來的真金白銀。要說這波國產替代的浪潮,還真讓咱們在芯片領域啃下了幾塊硬骨頭。先說個身邊
iStorage 推出 26TB 容量 diskAshur 加密硬盤,1541 美元起 - 天天要聞

iStorage 推出 26TB 容量 diskAshur 加密硬盤,1541 美元起

IT之家 5 月 5 日消息,硬盤製造商 iStorage 宣布推出 26TB 版本 diskAshur DT2/3 系列加密硬盤,相應硬盤主打“提供物理密碼按鍵”,其中 diskAshur DT2 26TB 版本售價為 1541 美元(IT之家註:現匯率約合 11147 元人民幣),diskAshur DT3 26TB 版本定價為 1814 美元(現匯率約
無線信號增強秘籍,橋接和中繼模式哪個更強? - 天天要聞

無線信號增強秘籍,橋接和中繼模式哪個更強?

【ZOL中關村在線原創技術解析】隨着無線通信與計算機技術飛速發展,人們愈發渴望隨時隨地享受穩定的數據通信服務。無線路由器作為無線網絡核心設備,作用關鍵。但當其信號覆蓋不足,如穿過兩堵牆後信號微弱時,可通過無線橋接或中繼模式連接兩個無線路由器,擴展網絡、增強信號。中繼模式和橋接模式雖都能擴展網絡覆蓋,但...
流暢更耐用 魅族Note 16將預裝Flyme 12 - 天天要聞

流暢更耐用 魅族Note 16將預裝Flyme 12

魅族官方透露,將於5月發布的魅族Note 16系列將出廠預裝Flyme 12新系統,這也是Flyme系統大版本首次在非旗艦機型上首發。魅族Note 16搭載紫光展銳T765處理器,配備6.78英寸LCD屏,分辨率達2460*1080。後置採用八邊形相機模組,由5000萬像素主攝和200萬像素鏡頭組成。續航方面,內置6600mAh大容量電池,支持40W有線充電