java中map的循環方式

什么是Map集合?
Map是Java中的一個接口,它用于存儲鍵-值對,并且鍵和值都可以是任意對象。它是Java集合框架中的一部分,并提供了一些方法來操作和訪問Map中的元素。

Map中的每個鍵都是唯一的,這意味著不能使用相同的鍵插入新的鍵值對,而新的值將會覆蓋舊的值。Map提供了許多方法來檢查是否包含指定的鍵和值、獲取鍵值對數量和遍歷Map中的元素等。

為什么要使用Map集合?
使用Map集合有以下幾個優點:

1、快速查找和訪問元素:

使用Map的鍵來訪問和查找值,可以快速定位元素,而不需要遍歷整個集合。

2、存儲關聯數據:

Map可以存儲鍵值對,比如存儲學生的姓名和成績,可以通過學生的姓名快速獲取到他的成績。

3、高效的添加和刪除元素:

Map提供了添加、刪除和修改元素的方法,操作比較高效,而且不需要對集合進行重排。

4、對于大量數據的處理,可以提高效率:

如果需要處理大量的數據,使用Map可以比較快速地進行查找和訪問,提高程序效率。

5、可以用于緩存數據:

Map可以將數據緩存到內存中,通過鍵值對的形式進行訪問,這樣可以避免頻繁地查詢數據庫或者文件系統,提高了程序效率。

使用Map集合可以提高程序的效率和可讀性,而且可以方便地存儲和訪問關聯數據

使用Map集合
1、創建Map對象:可以通過實例化HashMap、TreeMap或者LinkedHashMap等具體實現類來創建Map對象。

  • //1、創建一個Mop集合
  • Map<String, Integer> map = new HashMap<>();

2、添加元素:可以使用put()方法向Map中添加元素。

  • //2、在集合中新增三個鍵值對
  • map.put("CN","中國");
  • map.put("NL","荷蘭");
  • map.put("ES","西班牙");

3、獲取元素:使用get()方法可以獲取Map中的元素。

  • //3、獲取到一個鍵值對
  • System.out.println(map.get("CN"));

4、遍歷Map:使用foreach循環和keySet()方法來遍歷Map中的元素。

  • //4.1 通過(鍵集合)獲取值
  • ? ? Set keySet =map.keySet(); //獲取到所有值
  • ? ? for(Object key : keySet ){
  • ? ? ? ? System.out.println("鍵----:"+key);
  • ? ? ? ? Object value = map.get(key);
  • ? ? ? ? System.out.println(key+"-------"+value);
  • ? ? }

5、刪除元素:可以使用remove()方法刪除Map中的元素。

  • map.remove("ES");

注意:鍵必須是唯一的,如果向Map中添加一個已經存在的鍵,那么之前的值會被新的值覆蓋。注意空指針異常:當調用get()方法獲取一個不存在的鍵時,會返回null。

Map集合的循環遍歷方式

在Java中,Map接口的實現類(如HashMapTreeMap等)提供了多種方式來遍歷其鍵值對。

1. 使用entrySet()方法

這是最常用的遍歷方法,因為它允許你同時訪問鍵和值。

  • Map<String, Integer> map = new HashMap<>();
  • map.put("apple", 1);
  • map.put("banana", 2);
  • map.put("cherry", 3);
  • ?
  • for (Map.Entry<String, Integer> entry : map.entrySet()) {
  • ? ? System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
  • }

2. 使用keySet()方法

如果你只需要遍歷鍵或者需要單獨處理鍵和值,可以先獲取鍵的集合。

  • for (String key : map.keySet()) {
  • ? ? Integer value = map.get(key);
  • ? ? System.out.println("Key = " + key + ", Value = " + value);
  • }

3. 使用values()方法

如果你只關心值,可以獲取值的集合進行遍歷。

  • for (Integer value : map.values()) {
  • ? ? System.out.println("Value = " + value);
  • }

4. 使用迭代器(Iterator)

雖然不如上面幾種方法常用,但仍然是一種遍歷方式。

  • Iterator<Map.Entry<String, Integer>> iterator = map.entrySet().iterator();
  • while (iterator.hasNext()) {
  • ? ? Map.Entry<String, Integer> entry = iterator.next();
  • ? ? System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
  • }

5. 使用Java 8的流(Streams)

如果你使用的是Java 8或更高版本,可以利用流(Streams)來更簡潔地遍歷Map

  • map.forEach((key, value) -> System.out.println("Key = " + key + ", Value = " + value));

或者使用方法引用:

  • map.forEach((key, value) -> System.out.println(key + " = " + value));

或者使用Map.Entry

  • map.entrySet().forEach(entry -> System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue()));

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

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

相關文章

python學習筆記(深度學習)

文章目錄 1、概述2、學習內容2.1、pytorch 常見語法2.1.1、sum2.1.2、廣播機制2.1.3、張量2.1.4、DataLoader 2.2、普通語法2.2.1、迭代器 1、概述 本篇博客用來記錄&#xff0c;在深度學習過程中&#xff0c;常用的 python 語法內容 2、學習內容 2.1、pytorch 常見語法 2.…

力扣網C語言編程題:搜索二維矩陣(右上角->左下角解法)

一. 簡介 上一篇文章關于"在二維數組中查找某個元素"的問題&#xff0c;提供了兩種解題思路&#xff0c;文章如下&#xff1a; 力扣網C語言編程題&#xff1a;搜索二維矩陣的普通解法與二分查找法-CSDN博客 本文提供第三種解題思路&#xff1a;從左下角->右上角…

AI大模型流式輸出,OkHttp Log攔截打印方案

背景&#xff1a; 使用okhttp框架進行網絡訪問時&#xff0c;一般會使用 HttpLoggingInterceptor 打印請求和響應的log。在使用okhttp訪問AI大模型時&#xff0c;如果選擇流式輸出&#xff0c;那么響應的body數據使用的SSE技術&#xff0c;服務異步發送大模型生成的增量token&…

看數據世界的歷史:全面梳理從關系庫、大數據到AI時代的數據發展及展望

序章 在數據庫不斷發展的時代里&#xff0c;我們看到了關系型數據庫&#xff08;RDB&#xff09;在一次次的數據演變過程中的占據王位&#xff0c;捍衛了勝利&#xff0c;像一個王朝更替下的“王權”的故事&#xff0c;精彩有趣。 本篇就來探討下數據庫的發展興衰史&#xff0…

元宇宙與人工智能的融合:從虛擬世界到智能生態的IT新革命

文章目錄 引言&#xff1a;前沿技術重塑數字交互體驗一、元宇宙與AI融合的本質&#xff1a;虛擬空間與智能交互的交匯元宇宙賦能AI&#xff1a;AI賦能元宇宙&#xff1a; 二、元宇宙與AI融合的演進&#xff1a;從概念到產業熱潮三、核心技術&#xff1a;元宇宙與AI融合的基石與…

問卷調查[mqtt dht]

任務 this code uses esp32-wroom-32 and dht11 to read the humidty and temperature, besieds, it will send the meassage to the cloud platform. All communication is conducted through MQTT. 打分標準 您應該對以下代碼進行評級&#xff0c;并且必須遵守如…

swift 對象轉Json

在 Swift 中將對象轉換為 JSON 可以通過以下方法實現&#xff1a; 使用 Codable 協議 Swift 的 Codable 協議&#xff08;Encodable 和 Decodable 的組合&#xff09;是處理 JSON 編碼和解碼的推薦方式。 struct Person: Codable {var name: Stringvar age: Int }let person…

Python學習Day43

學習來源&#xff1a;浙大疏錦行 import torch import torch.nn as nn import torch.nn.functional as F import torchvision import torchvision.transforms as transforms import numpy as np import matplotlib.pyplot as plt from PIL import Image import os # 設置隨機…

了解一下Unity AssetBundle 的幾種加載方式

Unity 的 AssetBundle 系統提供了多種加載方式&#xff0c;以滿足不同場景下的資源管理和性能需求。 同步加載&#xff08;LoadFromFile&#xff09; 同步加載使用 AssetBundle.LoadFromFile 方法從文件系統中直接加載 AssetBundle。這種方式會阻塞主線程&#xff0c;直到加載…

鴻蒙邊緣智能計算架構實戰:多線程圖像采集與高可靠緩沖設計

目錄 一、技術背景與挑戰二、鴻蒙邊緣計算架構的核心特性1. 分布式軟總線&#xff1a;打破設備孤島2. 輕量化多線程模型 三、多線程圖像采集的穩定性設計1. 分層緩沖隊列架構2. 線程優先級策略 四、邊緣側高可靠緩沖機制1. 基于分布式數據管理的容錯設計2. 動態帶寬調節 五、實…

excel中vba開發工具

1、支持單元格點擊出現彈框進行選擇 支持模多次模糊查詢 Private Sub CommandButton1_Click() Call vehicle_查詢 End SubPrivate Sub Worksheet_Activate()Call vehicle_取出車架號和公司名稱 取出不重復的車架號Sheet13.ComboBox1.Visible False 車架號顯示Sheet13.ComboB…

CatBoost:征服類別型特征的梯度提升王者

基于有序提升與對稱樹的下一代GBDT框架&#xff0c;重塑高維分類數據處理范式 一、CatBoost的誕生&#xff1a;解決類別特征的終極挑戰 2017年由俄羅斯Yandex團隊開源&#xff0c;CatBoost&#xff08;Categorical Boosting&#xff09;直指機器學習中的核心痛點&#xff1a;類…

使用 WSL 啟動ubuntu.tar文件

使用 WSL 啟動ubuntu.tar文件&#xff0c;可按以下步驟進行3&#xff1a; 檢查 WSL 版本&#xff1a;確保你的 WSL 版本為 2.4.8 或更高版本。可以在命令行中輸入wsl --update來更新 WSL 到最新版本。 設置默認 WSL 版本&#xff1a;如果還沒有將 WSL 2 設置為默認版本&#x…

vue-23(創建用于邏輯提取的可重用組合組件)

創建用于邏輯提取的可重用組合組件 可重用的組合式是 Vue 組合式 API 的基石&#xff0c;它使你能夠在多個組件中提取和重用有狀態邏輯。這有助于編寫更清晰的代碼&#xff0c;減少冗余&#xff0c;并提高可維護性。通過將特定功能封裝到組合式中&#xff0c;你可以輕松地共享…

數據透視表學習筆記

學習視頻&#xff1a;Excel數據透視表大全&#xff0c;3小時從小白到大神&#xff01;_嗶哩嗶哩_bilibili 合并行標簽 初始數據透視表 不顯示分類匯總 以大綱形式顯示 在組的底部顯示所有分類匯總 以表格形式顯示 合并單元格-右鍵-數據透視表選項 選中-合并并劇中排列帶…

吃透 Golang 基礎:測試

文章目錄 go test測試函數隨機測試測試一個命令白盒測試外部測試包 測試覆蓋率基準測試剖析示例函數 go test go test命令是一個按照一定的約定和組織來測試代碼的程序。在包目錄內&#xff0c;所有以xxx_test.go為后綴名的源文件在執行go build時不會被構建為包的一部分&#…

酒店服務配置無門檻優惠券

1.查看酒店綁定的是那個倉庫&#xff1b; 凱里亞德酒店(深圳北站壹城中心店)&#xff0c;綁定的是“龍華民治倉&#xff08;睿嘀購” 2.“門店列表”選擇“龍華民治倉&#xff08;睿嘀購””中的“綁定場所” 3.通過酒店名字查找綁定的商品模板&#xff1b; 凱里亞德酒店(深圳…

IoT創新應用場景,賦能海外市場拓展

在數字化浪潮席卷全球的當下&#xff0c;物聯網&#xff08;Internet of Things, IoT&#xff09;正以革命性的力量重塑產業生態。這項通過傳感器、通信技術及智能算法實現設備互聯的技術&#xff0c;不僅推動全球從“萬物互聯”邁向“萬物智聯”&#xff0c;更成為賦能企業開拓…

Idea中Docker打包流程記錄

1. maven項目&#xff0c;先打package 2.添加Dockerfile 3.執行打包命令 注意最后的路徑 . docker buildx build -t xxx-app:版本號 -f Dockerfile . 4.下載文件 docker save -o xxx-app-版本號.tar xxx-app:版本號 5.加載鏡像 docker load -i xxx-app-版本號.tar 6.編…

硬件工程師筆試面試高頻考點-電阻

目錄 1.1 電阻選型時一般從哪幾個方面進行考慮? 1.2上拉下拉電阻的作用 1.3 PTC熱敏電阻作為電源電路保險絲的工作原理 1.4 如果阻抗不匹配&#xff0c;有哪些后果 1.5 電阻、電容和電感0402、0603和0805封裝的含義 1.6 電阻、電容和電感的封裝大小與什么參數有關 1.7 …