Java基礎(chǔ)Map集合詳析
一、概述
Interface Map k:鍵的類型;V:值的類型將鍵映射到值的對(duì)象;不能包含重復(fù)的鍵;每個(gè)鍵可以映射到最多一個(gè)值
二、創(chuàng)建Map集合的對(duì)象方式
- 1.使用多態(tài)的方式
- 2.具體實(shí)現(xiàn)類HashMap
public static void main(String[] args) {
? ? ? //創(chuàng)建Map集合對(duì)象
? ? ? Map<String,String> m=new HashMap<String,String>();
? ? ? //添加元素使用put方法,默認(rèn)自然排序
? ? ? m.put("02","李四");
? ? ? m.put("04","趙六");
? ? ? m.put("01","張三");
? ? ? m.put("03","王五");
? ? ? System.out.println(m);
? }
}三、Map集合的常用方法
| 方法名 | 說(shuō)明 |
|---|---|
| V put(K key,V value) | 添加元素,添加重復(fù)鍵值元素會(huì)覆蓋 |
| V remove(Object key) | 根據(jù)鍵刪除鍵值對(duì)元素 |
| void clear() | 清除所有的鍵值對(duì)元素 |
| Boolean containsKey(Object key) | 判斷集合是否包含指定的鍵,包含返回true |
| Boolean containsValue(Object value) | 判斷集合是否包含指定的值,包含返回true |
| Boolean isEmpty() | 判斷集合是否為空 |
| int size() | 獲取集合的長(zhǎng)度,也就是鍵值對(duì)的個(gè)數(shù) |
public class MapDemo01 {
? public static void main(String[] args) {
? ? ? //創(chuàng)建Map集合對(duì)象
? ? ? Map<String,String> m=new HashMap<String,String>();
? ? ? //添加元素,put方法
? ? ? m.put("1","張三");
? ? ? m.put("2","李四");
? ? ? m.put("3","王五");
? ? ? m.put("4","趙六");
? ? ? // System.out.println(m);
? ? ? //根據(jù)鍵刪除鍵值對(duì)元素
? ? ? System.out.println(m.remove("3"));//切記鍵是什么類型就寫什么類型,不然會(huì)返回null
? ? ? System.out.println(m);
? ? ? //清除所有鍵值對(duì)元素
? ? ? m.clear();
? ? ? //Boolean isEmpty()判斷集合是否為空
? ? ? System.out.println(m.isEmpty());
? ? ? // System.out.println(m);
? ? ? //Boolean containsKey(Object key);判斷集合中是否包含指定的鍵
? ? ? System.out.println(m.containsKey("5"));//切記鍵是什么類型就寫什么類型,不然會(huì)返回null
? ? ? //Boolean containsValue(Object value)判斷集合是否包含指定的值,包含返回true
? ? ? System.out.println(m.containsValue("張三"));
? ? ? //int size()獲取集合的長(zhǎng)度,也就是鍵值對(duì)的個(gè)數(shù)
? ? ? System.out.println(m.size());
? }
}
?四、Map的獲取方法
| 方法名 | 說(shuō)明 |
|---|---|
| V get(Object key) | 根據(jù)鍵獲取值 |
| Set<K>keySet() | 獲取所有鍵的集合 |
| Collection<V>values() | 獲取所有值的集合 |
| Set<Map.Entry<K,V>>entrySet() | 獲取所有鍵值對(duì)對(duì)象的集合 |
public class MapDemo02 {
? public static void main(String[] args) {
? ? ? //創(chuàng)建Map對(duì)象
? ? ? Map<String,String> m=new HashMap<String,String>();
? ? ? //添加元素
? ? ? m.put("1","張三");
? ? ? m.put("3","李四");
? ? ? m.put("4","王五");
? ? ? m.put("2","趙六");
// ? ? ? System.out.println(m);
? ? ? //V get(Object key)根據(jù)鍵獲取值
? ? ? System.out.println(m.get("3"));//要注意鍵的類型,類型不對(duì)會(huì)報(bào)null
? ? ? //Set<K>keySet()獲取所有鍵的集合,因?yàn)榉祷氐氖莻€(gè)集合,所以用增強(qiáng)for遍歷
? ? ? Set<String> k=m.keySet();
? ? ? for (String key:k){
? ? ? ? ? System.out.println(key);
? ? ? }
? ? ? //Collection<V>values()獲取所有值的集合,注意,他會(huì)按照鍵的排序?qū)χ颠M(jìn)行排序
? ? ? Collection<String> c=m.values();
? ? ? for (String v:c){
? ? ? ? ? System.out.println(v);
? ? ? }
?
? }
}五、Map集合的遍歷方式
方式一:
- 1.先獲取Map集合中的所有鍵的集合,使用方法
setKey() - 2.遍歷所有鍵的集合獲取每一個(gè)鍵
- 3.通過(guò)每一個(gè)鍵獲取相對(duì)應(yīng)的值
getValues方法
public static void main(String[] args) {
? ? ? //方式一
? ? ? //創(chuàng)建Map集合對(duì)象
? ? ? Map<String,String> m=new HashMap<String,String>();
? ? ? //添加鍵值對(duì)
? ? ? m.put("1","張三");
? ? ? m.put("3","李四");
? ? ? m.put("4","王五");
? ? ? m.put("2","趙六");
? ? ? //獲取所有鍵的集合
? ? ? Set<String>s=m.keySet();
? ? ? //遍歷
? ? ? for (String key:s){
? ? ? ? ? //再通過(guò)鍵獲取相對(duì)應(yīng)的值
? ? ? ? ? String value=m.get(key);
? ? ? ? ? System.out.println(key+","+value);
? ? ? }
? }
}方式二:
- 1.獲取所有鍵值對(duì)的集合,使用Set<Map.Entry<K,V>>entrySet()方法
- 2.遍歷這個(gè)集合獲得每一個(gè)鍵值對(duì) 對(duì)象也就是Map.Entry對(duì)象
- 3.再根據(jù)鍵值對(duì)對(duì)象獲取值和鍵
getKey()獲取鍵
getValue()獲取值
public static void main(String[] args) {
// ? ? ? //方式一
// ? ? ? //創(chuàng)建Map集合對(duì)象
// ? ? ? Map<String,String> m=new HashMap<String,String>();
// ? ? ? //添加鍵值對(duì)
// ? ? ? m.put("1","張三");
// ? ? ? m.put("3","李四");
// ? ? ? m.put("4","王五");
// ? ? ? m.put("2","趙六");
// ? ? ? //獲取所有鍵的集合
// ? ? ? Set<String>s=m.keySet();
// ? ? ? //遍歷
// ? ? ? for (String key:s){
// ? ? ? ? ? //再通過(guò)鍵獲取相對(duì)應(yīng)的值
// ? ? ? ? ? String value=m.get(key);
// ? ? ? ? ? System.out.println(key+","+value);
// ? ? ? }
? ? ? //方式二
? ? ? //創(chuàng)建Map集合對(duì)象
? ? ? Map<String,String> m=new HashMap<String,String>();
? ? ? //添加鍵值對(duì)
? ? ? m.put("1","張三");
? ? ? m.put("3","李四");
? ? ? m.put("4","王五");
? ? ? m.put("2","趙六");
? ? ? //獲取所有鍵值對(duì)的集合Set<Map.Entry<K,V>>entrySet()
? ? ? Set<Map.Entry<String,String>> s= m.entrySet();
? ? ? //遍歷該集合
? ? ? for (Map.Entry<String,String> ss:s){
? ? ? ? ? //通過(guò)鍵值對(duì)對(duì)象獲取鍵值
? ? ? ? ? String key=ss.getKey();
? ? ? ? ? //通過(guò)鍵值對(duì)對(duì)象獲取值
? ? ? ? ? String value=ss.getValue();
? ? ? ? ? System.out.println(key+","+value);
?
? ? ? }
? }
}到此這篇關(guān)于Java基礎(chǔ)Map集合詳析的文章就介紹到這了,更多相關(guān)Java Map集合內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java顯示當(dāng)前運(yùn)行時(shí)的參數(shù)(java運(yùn)行參數(shù))
這篇文章主要介紹了java顯示當(dāng)前運(yùn)行時(shí)參數(shù)的示例(java運(yùn)行參數(shù)),需要的朋友可以參考下2014-04-04
SpringCloud學(xué)習(xí)筆記之SpringCloud搭建父工程的過(guò)程圖解
SpringCloud是分布式微服務(wù)架構(gòu)的一站式解決方案,十多種微服務(wù)架構(gòu)落地技術(shù)的集合體,俗稱微服務(wù)全家桶,這篇文章主要介紹了SpringCloud學(xué)習(xí)筆記(一)搭建父工程,需要的朋友可以參考下2021-10-10
關(guān)于Java中靜態(tài)代碼塊的執(zhí)行淺析
這篇文章主要給大家介紹了關(guān)于Java中靜態(tài)代碼塊執(zhí)行的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-09-09
Windows系統(tǒng)下Eclipse搭建ESP32編譯環(huán)境及安裝過(guò)程
Ecppse 使用了 ESP-IDF 中的 Makefile 支持。這意味著您需要從創(chuàng)建 ESP-IDF 項(xiàng)目開(kāi)始。您可以使用 github 中的 idf-template 項(xiàng)目,接下來(lái)通過(guò)本文給大家介紹Windows系統(tǒng)下Eclipse搭建ESP32編譯環(huán)境及安裝過(guò)程,感興趣的朋友一起看看吧2021-10-10
淺析如何使用Swagger生成帶權(quán)限控制的API文檔
當(dāng)涉及到權(quán)限控制時(shí),如何生成既安全又詳細(xì)的?API?文檔就成了一個(gè)關(guān)鍵問(wèn)題,所以這篇文章小編就來(lái)和大家好好聊聊如何用?Swagger?來(lái)生成帶有權(quán)限控制的?API?文檔吧2025-02-02

