Java中Map.Entry()含義及方法使用代碼
前言
Map.Entry
是 Java 中 Map
接口的一個(gè)嵌套接口(靜態(tài)內(nèi)部接口),它代表 一個(gè)鍵值對(duì)(Key-Value Pair),是操作 Map
中單個(gè)鍵值對(duì)的核心工具。它的主要作用是提供對(duì)鍵和值的高效訪問(wèn)和操作,尤其在遍歷 Map
時(shí)非常有用。
有用。
Map.Entry作用
直接訪問(wèn)鍵和值通過(guò)
Map.Entry
,可以同時(shí)獲取鍵(getKey()
)和值(getValue()
),無(wú)需先獲取鍵再通過(guò)get(key)
查找值,減少性能開(kāi)銷。修改值(如果允許)通過(guò)
setValue(V value)
方法可以直接修改當(dāng)前鍵對(duì)應(yīng)的值(前提是Map
實(shí)現(xiàn)支持修改,如HashMap
)。遍歷 Map 的高效方式使用
entrySet()
遍歷Map
時(shí),直接操作Entry
對(duì)象比通過(guò)keySet()
遍歷再調(diào)用get(key)
更高效。
核心方法
方法 | 作用 |
---|---|
K getKey() | 返回當(dāng)前 Entry 的鍵 |
V getValue() | 返回當(dāng)前 Entry 的值 |
V setValue(V value) | 修改當(dāng)前 Entry 的值(需 Map 支持) |
常見(jiàn)使用場(chǎng)景
1. 遍歷 Map 的所有鍵值對(duì)
Map<String, Integer> map = new HashMap<>(); map.put("Apple", 10); map.put("Banana", 20); // 使用 entrySet() 遍歷 for (Map.Entry<String, Integer> entry : map.entrySet()) { String key = entry.getKey(); Integer value = entry.getValue(); System.out.println(key + " -> " + value); }
輸出:
Apple -> 10
Banana -> 20
2. 直接修改 Map 中的值
Map<String, Integer> map = new HashMap<>(); map.put("Apple", 10); // 遍歷并修改值 for (Map.Entry<String, Integer> entry : map.entrySet()) { if (entry.getKey().equals("Apple")) { entry.setValue(50); // 將 Apple 的值修改為 50 } } System.out.println(map.get("Apple")); // 輸出 50
3. 排序 Map 的鍵值對(duì)
可以基于鍵或值對(duì) Entry
進(jìn)行排序:
Map<String, Integer> map = new HashMap<>(); map.put("Apple", 30); map.put("Banana", 10); map.put("Cherry", 20); // 將 Entry 轉(zhuǎn)換為 List 進(jìn)行排序 List<Map.Entry<String, Integer>> entries = new ArrayList<>(map.entrySet()); // 按值升序排序 entries.sort(Map.Entry.comparingByValue()); // 輸出排序后的結(jié)果 for (Map.Entry<String, Integer> entry : entries) { System.out.println(entry.getKey() + " -> " + entry.getValue()); }
輸出:
Banana -> 10
Cherry -> 20
Apple -> 30
注意事項(xiàng)
Map.Entry實(shí)例通常是通過(guò)Map.entrySet()方法獲取的,而不是直接使用Map.entry方法創(chuàng)建的。
在Java 9之后,可以使用of方法創(chuàng)建Map.Entry實(shí)例,例如Map.entry("key", "value")可以替換為Map.of("key", "value")。
總結(jié)
Map.Entry 的作用:提供一種高效的方式訪問(wèn)和操作
Map
中的單個(gè)鍵值對(duì)。核心場(chǎng)景:遍歷
Map
、修改值、排序鍵值對(duì)。
到此這篇關(guān)于Java中Map.Entry()含義及方法使用的文章就介紹到這了,更多相關(guān)Java Map.Entry()用法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java實(shí)現(xiàn)圖片水平和垂直翻轉(zhuǎn)效果
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)圖片水平和垂直翻轉(zhuǎn)效果,圖片旋轉(zhuǎn)的靈活運(yùn)用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01Spring?MVC概念+項(xiàng)目創(chuàng)建+@RequestMappring案例代碼
Spring?MVC?是?Spring?提供的一個(gè)基于?MVC?設(shè)計(jì)模式的輕量級(jí)?Web?開(kāi)發(fā)框架,本質(zhì)上相當(dāng)于?Servlet,這篇文章主要介紹了Spring?MVC概念+項(xiàng)目創(chuàng)建+@RequestMappring,需要的朋友可以參考下2023-02-02datax-web在windows環(huán)境idea中模塊化打包部署操作步驟
這篇文章主要介紹了datax-web在windows環(huán)境idea中模塊化打包部署操作步驟,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-05-05spring boot+mybatis搭建一個(gè)后端restfull服務(wù)的實(shí)例詳解
這篇文章主要介紹了spring boot+mybatis搭建一個(gè)后端restfull服務(wù),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11通過(guò)Java實(shí)現(xiàn)帶干擾線的驗(yàn)證碼
帶干擾線的驗(yàn)證碼是一種常見(jiàn)的安全驗(yàn)證方式,目的是通過(guò)圖像中的干擾線增加機(jī)器識(shí)別的難度,確保只有人類用戶能夠順利識(shí)別并輸入驗(yàn)證碼,本項(xiàng)目的目的是通過(guò)Java實(shí)現(xiàn)一個(gè)帶有干擾線的驗(yàn)證碼生成器,需要的朋友可以參考下2025-02-02