Map集合中獲取key-value值的實(shí)現(xiàn)方法
Map<K,V>集合是一種鍵值映射形式的集合。
當(dāng)調(diào)用put(K key,V value)方法把數(shù)據(jù)存到Map中后,如何把Map中的key值和value值取出來(lái)呢?
都有哪幾種取值的方法呢?下邊就來(lái)一一介紹。
一、前置準(zhǔn)備
以HashMap為例,先為map中存入幾個(gè)數(shù)據(jù),以便于后邊對(duì)map的取值遍歷。
package com.jinglan.list; import java.util.HashMap; public class Demo1 { public static void main(String[] args) { // 定義HashMap集合 HashMap<String, String> map = new HashMap<String, String>(); // 添加要存入集合的鍵值 map.put("apple", "蘋果"); map.put("banana", "香蕉"); map.put("orange", "橘子"); } }
二、獲取Map的key-value值
獲取Map的key-value值分別有以下幾種方式,使用時(shí)可以根據(jù)不同的場(chǎng)景,選擇對(duì)應(yīng)的取值方式。
方法一
- 同時(shí)獲取Map中的key值和value值。
- 此方法通常在要遍歷展示這個(gè)map中所有的key和value
例如:
//調(diào)用entrySet方法,將獲取到的鍵值對(duì)存放進(jìn)Entry的Set集合 Set<Entry<String, String>> entrySet = map.entrySet(); //獲取Entry的Set集合的迭代器 Iterator<Entry<String, String>> it = entrySet.iterator(); //判斷迭代器中是否還有元素,如果有,則進(jìn)入循環(huán);如果沒有,則停止。 while(it.hasNext()) { /*通過(guò)next()方法獲取迭代器中的元素,這里需要注意,每次循環(huán),只能調(diào)用一次 * next()方法,因?yàn)槊空{(diào)用一次next()方法就會(huì)獲取一個(gè)元素 * 例如,當(dāng)多次要調(diào)用這個(gè)entry對(duì)象時(shí),可以先把it.next();獲取出來(lái)并用 * entry對(duì)象來(lái)接收一下 */ Entry<String, String> entry = it.next(); //獲取到entry對(duì)象后,如果想要獲取key,可以調(diào)用getKey(),想要獲取value可以調(diào)用getValue() System.out.println(entry.getKey()+" "+entry.getValue()); }
運(yùn)行一下:
package com.jinglan.list; import java.util.HashMap; import java.util.Iterator; import java.util.Map.Entry; import java.util.Set; public class Demo1 { public static void main(String[] args) { // 定義HashMap集合 HashMap<String, String> map = new HashMap<String, String>(); // 添加要存入集合的鍵值 map.put("apple", "蘋果"); map.put("banana", "香蕉"); map.put("orange", "橘子"); //調(diào)用entrySet方法,將獲取到的鍵值對(duì)存放進(jìn)Entry的Set集合 Set<Entry<String, String>> entrySet = map.entrySet(); //獲取Entry的Set集合的迭代器 Iterator<Entry<String, String>> it = entrySet.iterator(); //判斷迭代器中是否還有元素,如果有,則進(jìn)入循環(huán);如果沒有,則停止。 while(it.hasNext()) { /*通過(guò)next()方法獲取迭代器中的元素,這里需要注意,每次循環(huán),只能調(diào)用一次 * next()方法,因?yàn)槊空{(diào)用一次next()方法就會(huì)獲取一個(gè)元素 * 例如,當(dāng)多次要調(diào)用這個(gè)entry對(duì)象時(shí),可以先把it.next();獲取出來(lái)并用 * entry對(duì)象來(lái)接收一下 */ Entry<String, String> entry = it.next(); //獲取到entry對(duì)象后,如果想要獲取key,可以調(diào)用getKey(),想要獲取value可以調(diào)用getValue() System.out.println(entry.getKey()+" "+entry.getValue()); } } }
運(yùn)行結(jié)果:
方法二
- 獲取Map中的所有key值,以及通過(guò)key值獲取對(duì)應(yīng)的value值。
- 此方法可以用在一些需要判斷是否是指定key的情況下,獲取該key對(duì)應(yīng)的value。
例如:
//獲取所有key的Set集合 Set<String> keySet = map.keySet(); //獲取key的Set集合的迭代器 Iterator<String> it = keySet.iterator(); //判斷迭代器中是否還有元素,如果有,則進(jìn)入循環(huán);如果沒有,則停止。 while(it.hasNext()) { /*通過(guò)next()方法獲取迭代器中的元素,這里需要注意,每次循環(huán),只能調(diào)用一次next()方法 * 因?yàn)槊空{(diào)用一次next()方法就會(huì)獲取一個(gè)元素,這里每調(diào)用一次,就會(huì)取出一個(gè)key */ String key = it.next(); System.out.println(key); //如果想要獲取key對(duì)應(yīng)的value,也可以通過(guò)get()方法獲取對(duì)應(yīng)的value System.out.println(key+" "+map.get(key)); }
運(yùn)行一下:
package com.jinglan.list; import java.util.HashMap; import java.util.Iterator; import java.util.Map.Entry; import java.util.Set; public class Demo1 { public static void main(String[] args) { // 定義HashMap集合 HashMap<String, String> map = new HashMap<String, String>(); // 添加要存入集合的鍵值 map.put("apple", "蘋果"); map.put("banana", "香蕉"); map.put("orange", "橘子"); //獲取所有key的Set集合 Set<String> keySet = map.keySet(); //獲取key的Set集合的迭代器 Iterator<String> it = keySet.iterator(); //判斷迭代器中是否還有元素,如果有,則進(jìn)入循環(huán);如果沒有,則停止。 while(it.hasNext()) { /*通過(guò)next()方法獲取迭代器中的元素,這里需要注意,每次循環(huán),只能調(diào)用一次next()方法 * 因?yàn)槊空{(diào)用一次next()方法就會(huì)獲取一個(gè)元素,這里每調(diào)用一次,就會(huì)取出一個(gè)key */ String key = it.next(); System.out.println(key); //如果想要獲取key對(duì)應(yīng)的value,也可以通過(guò)get()方法獲取對(duì)應(yīng)的value System.out.println(key+" "+map.get(key)); } } }
運(yùn)行結(jié)果:
方法三
獲取Map中的所有value值,此方法通常用于只想要展示或獲取所有的value值的情況
//獲取所有value的Collection集合 Collection<String> values = map.values(); //使用value的Collection集合的迭代器 Iterator<String> it = values.iterator(); //判斷迭代器中是否還有元素,如果有,則進(jìn)入循環(huán);如果沒有,則停止。 while(it.hasNext()) { /*通過(guò)next()方法獲取迭代器中的元素,這里需要注意,每次循環(huán),只能調(diào)用一次next()方法 * 因?yàn)槊空{(diào)用一次next()方法就會(huì)獲取一個(gè)元素,這里每調(diào)用一次,就會(huì)取出一個(gè)value */ String value = it.next(); System.out.println(value); }
運(yùn)行一下:
package com.jinglan.list; import java.util.Collection; import java.util.HashMap; import java.util.Iterator; import java.util.Map.Entry; import java.util.Set; public class Demo1 { public static void main(String[] args) { // 定義HashMap集合 HashMap<String, String> map = new HashMap<String, String>(); // 添加要存入集合的鍵值 map.put("apple", "蘋果"); map.put("banana", "香蕉"); map.put("orange", "橘子"); //獲取所有value的Collection集合 Collection<String> values = map.values(); //使用value的Collection集合的迭代器 Iterator<String> it = values.iterator(); //判斷迭代器中是否還有元素,如果有,則進(jìn)入循環(huán);如果沒有,則停止。 while(it.hasNext()) { /*通過(guò)next()方法獲取迭代器中的元素,這里需要注意,每次循環(huán),只能調(diào)用一次next()方法 * 因?yàn)槊空{(diào)用一次next()方法就會(huì)獲取一個(gè)元素,這里每調(diào)用一次,就會(huì)取出一個(gè)value */ String value = it.next(); System.out.println(value); } } }
運(yùn)行結(jié)果:
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
@Transactional跟@DS動(dòng)態(tài)數(shù)據(jù)源注解沖突的解決
這篇文章主要介紹了@Transactional跟@DS動(dòng)態(tài)數(shù)據(jù)源注解沖突的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09JAVA 統(tǒng)計(jì)字符串中中文,英文,數(shù)字,空格,特殊字符的個(gè)數(shù)
這篇文章主要介紹了JAVA 統(tǒng)計(jì)字符串中中文,英文,數(shù)字,空格,特殊字符的個(gè)數(shù) ,本文通過(guò)一段代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-06-06SpringMvc框架的簡(jiǎn)介與執(zhí)行流程詳解
MVC是一種軟件設(shè)計(jì)典范,用一種業(yè)務(wù)邏輯、數(shù)據(jù)、界面顯示分離的方法組織代碼,將業(yè)務(wù)邏輯聚集到一個(gè)組件里面,在改進(jìn)和個(gè)性化定制界面及用戶交互的同時(shí),不需要重新編寫業(yè)務(wù)邏輯,MVC分層有助于管理和架構(gòu)復(fù)雜的應(yīng)用程序2021-06-06SpringBoot實(shí)現(xiàn)單元測(cè)試示例詳解
單元測(cè)試(unit testing),是指對(duì)軟件中的最小可測(cè)試單元進(jìn)行檢查和驗(yàn)證。這篇文章主要為大家介紹了C語(yǔ)言實(shí)現(xiàn)單元測(cè)試的方法,需要的可以參考一下2022-11-11將ResultSet中得到的一行或多行結(jié)果集封裝成對(duì)象的實(shí)例
這篇文章主要介紹了將ResultSet中得到的一行或多行結(jié)果集封裝成對(duì)象的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-05-05JFileChooser實(shí)現(xiàn)對(duì)選定文件夾內(nèi)圖片自動(dòng)播放和暫停播放實(shí)例代碼
這篇文章主要介紹了JFileChooser實(shí)現(xiàn)對(duì)選定文件夾內(nèi)圖片自動(dòng)播放和暫停播放實(shí)例代碼,需要的朋友可以參考下2017-04-04