Java -- HashSet的全面說明-Map接口的常用方法-遍歷方法

目錄

1. HashSet的全面說明

2. Map接口實現類的特點

注意:講的是JDK8的Map接口特點

3. Map接口的常用方法

4. Map遍歷方法


1. HashSet的全面說明

1. HashSet實現了Set接口

2. HashSet實際上是HashMap

3. 可以存放null值,但是只能有一個null

4. HashSet不保證元素是有序的,取決于hash后,再確定索引的結果

5. 不能保證重復元素/對象,在前面Set接口使用已經講過


2. Map接口實現類的特點

注意:講的是JDK8的Map接口特點

1. Map與Collection并列存在,用于保存具有映射關系的數據:k-v

2. Map中的key和value可以是任何引用類型的數據,會封裝到HashMap$Node對象中

3. Map中的key不允許重復,原因和HashSet一樣

4. Map的key可以是null,value也可以為null,注意key為null,只能有一個(key不能重復),value為null,可以多個。

5. Map中的value可以重復

6. 常用String類作為Map的key

7. key和value之間存在單向一對一關系,通過指定的key總能找到對應的value

8. Map存放數據的key-value示意圖,一對一k-v是放在一個Node中的,有因為Node實現了Entry接口,有些書上也說 一對k-v就是一個Entry


3. Map接口的常用方法

1. put:添加?

2. remove:根據鍵刪除映射關系

3. get:根據鍵獲取值

4. size:獲取元素個數

5. isEmpty:判斷個數是否為0

6. clear: 清除

7. containsKey: 查找鍵是否存在

// map的常用方法Map map = new HashMap();map.put("鄧超",new Book("",100));map.put("鄧超","孫儷");map.put("鄧超","孫儷");map.put("王寶強","馬蓉");map.put("六",null);map.put(null,"劉亦菲");System.out.println("map="+map);// remove 根據鍵刪除映射關系map.remove(null);System.out.println("map="+map);// get:根據鍵獲取值Object o = map.get("六");System.out.println("val="+o);//size :獲取元素個數System.out.println("k-v="+map.size());// isEmpty:判斷個數是否為0System.out.println(map.isEmpty());//clear:清除k-vmap.clear();System.out.println("map="+map);//containsKey:查找鍵是否存在System.out.println(map.containsKey("王寶強"));

4. Map遍歷方法

 Map map = new HashMap();map.put("鄧超", new Book("", 100));map.put("鄧超", "孫儷");map.put("鄧超", "孫儷");map.put("王寶強", "馬蓉");map.put("六", null);map.put(null, "劉亦菲");// 第一組:先取出 所有的Key,通過Key取出對應的ValueSet keySet = map.keySet();// 增強forSystem.out.println("=====第一種=====");for (Object key : keySet) {System.out.println(key + "-" + map.get(key));}// 2. 迭代器Iterator iterator = keySet.iterator();while (iterator.hasNext()) {Object key = iterator.next();System.out.println(key + "-" + map.get(key));//第二組:把所有的values取出Collection values = map.values();//可以使用所有Collection使用的所有遍歷方法// 增強forSystem.out.println("====取出所有的values for===");for (Object value : values) {System.out.println(value);}// 迭代器System.out.println("====取出所有的values 迭代器===");Iterator iterator1 = values.iterator();while (iterator1.hasNext()) {Object value = iterator1.next();System.out.println(value);}// 第三組 通過EntrySet來獲取 k-vSet entrySet = map.entrySet();// 增強forSystem.out.println("====取出所有的values for 第三種方式===");for (Object entry :entrySet) {// 將entry轉成Map.EntryMap.Entry m = (Map.Entry) entry;System.out.println(m.getKey()+"-"+m.getValue());}//迭代器System.out.println("====取出所有的values 迭代器 第四種方式===");Iterator iterator2 = entrySet.iterator();while (iterator2.hasNext()) {Object entry =  iterator2.next();//System.out.println(next.getClass());// hashmapnode -- 實現了 map.entryMap.Entry m =(Map.Entry) entry;System.out.println(m.getKey()+"-"+m.getValue());

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/918753.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/918753.shtml
英文地址,請注明出處:http://en.pswp.cn/news/918753.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【python】類型注解

參考【為什么越來越多Python項目都在寫類型注解?】 https://www.bilibili.com/video/BV1sW81zbEkD/?share_sourcecopy_web&vd_source9332b8fc5ea8d349a54c3989f6189fd3代碼示例使用變量 : 類型名 來注解。""" python類型注解 """…

零基礎入門PostgreSQL教學視頻,持續更新

PostgreSQL數據庫在國內的迅速發展,引起了很多數據庫從業者的注意,不少人都想學習這個熱門的技術,但是畢竟有PostgreSQL有自己的特點與優勢,不同于Oracle、MySQL等數據庫,想要快速入門PostgreSQL技術需要下一些功夫。一…

PageAdmin與WordPress哪個適合企業建站

對于企業建站需求,PageAdmin和WordPress各有特點,以下是綜合對比分析: ?功能與專業性? ?PageAdmin?:專為企業級網站設計,內置自定義字段、表單和多站點管理功能,適合需要高定制化的企業官網、政府或學校…

微服務單元測試組件

背景 微服務的調試,哪怕是簡單問題,需要啟動9個服務,ui/nginx 網關 應用 auth 基礎數據服務 redis nacos 平臺服務 ,效率差得不行,準備開發一個支持微服務環境的單元測試組件, 組件解決3個問題&#xff1a…

從零到一的 Python CI/CD 實戰指南:用 GitHub Actions 與 Jenkins 打造穩定、可持續交付的工程力

從零到一的 Python CI/CD 實戰指南:用 GitHub Actions 與 Jenkins 打造穩定、可持續交付的工程力 當我們把第一行 Python 程序跑通時,成就感像破土的新芽;而當它在每次提交后自動被測試、打包、發布、上線,穩定服務成千上萬的用戶,那是“工程化”的成熟。本文帶你從概念到…

如何在保持人設新鮮感的同時,強化受眾記憶點?

保持人設新鮮感與強化受眾記憶點,本質是 “動態創新” 與 “核心穩定” 的平衡藝術。既需通過有序變化避免受眾審美疲勞,又需讓核心特質在重復中加深烙印,關鍵在于建立 “錨點穩定、外延流動” 的內容體系。一、錨定 “核心記憶單元”&#x…

Ubuntu 22.04 離線環境下 Python 包與 FFmpeg 安裝全攻略?

Ubuntu 22.04 離線環境下 Python 包與 FFmpeg 安裝全攻略 在沒有網絡連接的 Ubuntu 22.04 環境中安裝軟件包常常會遇到各種依賴問題,尤其是 Python 庫和 FFmpeg 這類依賴復雜的工具。 本文將詳細介紹如何在離線環境中安裝指定的 Python 包(包括 OpenCV、…

ESP32 I2S音頻總線學習筆記(六):DIY藍牙音箱教程

往期相關文章: ESP32 I2S音頻總線學習筆記(一):初識I2S通信與配置基礎 ESP32 I2S音頻總線學習筆記(二):I2S讀取INMP441音頻數據 ESP32 I2S音頻總線學習筆記(三)&#…

springboot博客實戰筆記02

一、評論功能: 注意要先登錄之后才能進行評論,所有把評論加入到登錄攔截器當中 Overridepublic void addInterceptors(InterceptorRegistry registry) {//攔截test接口,后續實際遇到需要攔截的接口時,在配置為真正的攔截接口regis…

ThinkPHP+Mysql 靈活用工小程序-技術深度解析與實踐指南

一、模塊設計分包商:稅地注冊公司,用于在當地申請有利的稅收政策,是實際報稅公司。 代理商:代理商可以邀請客戶使用本平臺,平臺會給予代理商一定的服務費差價作為傭金。 客戶:使用本平臺進行工資發放的…

開源數據發現平臺:Amundsen 第1部分:基礎入門與本地環境設置

Amundsen 是一個數據發現和元數據引擎,旨在提高數據分析師、數據科學家和工程師與數據交互時的生產力。目前,它通過索引數據資源(表格、儀表板、數據流等)并基于使用模式(例如,查詢頻率高的表格會優先于查詢…

Linux編程--進程

1、基本概念:進程:是程序動態執行的過程,包括創建、調度、消亡程序:存放在外存中一段數據的集合虛擬地址:進程使用的邏輯地址,有操作系統管理,不直接對應物理內存物理地址:實際內存的…

【開源工具】基于硬件指紋的“一機一碼”軟件授權系統全實現(附完整源碼)

?? 緊急預警!你的軟件正在被白嫖?這套Python軟件加密授權方案讓破解者當場崩潰 ?? 個人主頁:創客白澤 - CSDN博客 ?? 系列專欄:??《Python開源項目實戰》 ?? 熱愛不止于代碼,熱情源自每一個靈感閃現的夜晚。愿以開源之火,點亮前行之路。 ?? 希望大家多多支持…

機器學習算法篇(八)-------svm支持向量機

目錄 ??1. SVM 的核心原理(必須掌握)?? ??2. Python 中的實踐重點?? ??(1) Scikit-learn 的 SVM 實現?? ??(2) 數據預處理?? ??(3) 模型評估與調優?? ??3. 學習側重點優先級?? ??4. 經典案例實踐方向?? ??5. 學習…

發票查驗接口接收參數說明-PHP語言集成-財務管理

發票驗真服務接口可實時聯網核驗發票真偽,查驗一致時返回全票面信息。其支持核驗增值稅發票管理系統開具發票的真偽,且能進行發票批量查驗,當日開具的發票當日即可查驗。同時,結合發票識別接口可實現自動識別發票信息核驗&#xf…

Uniapp物聯網平臺登錄與溫濕度監測系統

下面是一個完整的Uniapp物聯網平臺實現,包含登錄功能和溫濕度監測系統。這個解決方案采用現代化UI設計,模擬了物聯網平臺的核心功能。文章末尾提供源碼下載。 系統功能說明 這個Uniapp物聯網平臺登錄與溫濕度監測系統包含以下核心功能: 1.…

【企業架構】TOGAF概念之四(終結)

導讀:學習TOGAF(The Open Group Architecture Framework,開放組架構框架)相關概念的意義和價值,體現在它為企業架構(Enterprise Architecture, EA)實踐提供了標準化方法論、跨領域協同框架、戰略…

centos 怎么部署 vscode 網頁版

安裝編譯工具 下載適用于 linux 版本的 rpm 格式文件 下載 Visual Studio Tools - 免費安裝 Windows、Mac、Linux 拷貝路徑,下載文件 wget https://vscode.download.prss.microsoft.com/dbazure/download/stable/e3550cfac4b63ca4eafca7b601f0d2885817fd1f/code…

sql的關鍵字 limit 和offset

核心概念LIMIT (限制): 指定查詢最多返回多少行記錄。OFFSET (偏移): 指定在開始返回記錄之前要跳過多少行記錄。它定義了結果集的起始點。核心前提: 必須 使用 ORDER BY 子句來確保分頁結果的順序穩定和可預測。示例: 假設 employees 表有 100 條記錄&a…

git config的配置全局或局部倉庫的參數: local, global, system

git config的范圍參數: local, global, system1. --local: 作用于當前倉庫2. --global: 作用于當前用戶的全局范圍的 Git 倉庫3. --system: 作用于系統范圍內的 Git 倉庫4. 注意事項參考鏈接1. --local: 作用于當前倉庫 --local: 這個參數的作用范圍是當前倉庫。其配置的參數保…