溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Map集合中如何獲取key-value值

發(fā)布時(shí)間:2023-03-22 10:48:45 來(lái)源:億速云 閱讀:153 作者:iii 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要介紹“Map集合中如何獲取key-value值”,在日常操作中,相信很多人在Map集合中如何獲取key-value值問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”Map集合中如何獲取key-value值”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

一、前置準(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", "蘋(píng)果");
		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);如果沒(méi)有,則停止。
		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", "蘋(píng)果");
		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);如果沒(méi)有,則停止。
		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-value值

方法二    

  • 獲取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);如果沒(méi)有,則停止。
		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", "蘋(píng)果");
		map.put("banana", "香蕉");
		map.put("orange", "橘子");

		//獲取所有key的Set集合
		Set<String> keySet = map.keySet();
		//獲取key的Set集合的迭代器
		Iterator<String> it = keySet.iterator();
		//判斷迭代器中是否還有元素,如果有,則進(jìn)入循環(huán);如果沒(méi)有,則停止。
		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集合中如何獲取key-value值

方法三

獲取Map中的所有value值,此方法通常用于只想要展示或獲取所有的value值的情況

//獲取所有value的Collection集合
		Collection<String> values = map.values();
		//使用value的Collection集合的迭代器
		Iterator<String> it = values.iterator();
		//判斷迭代器中是否還有元素,如果有,則進(jìn)入循環(huán);如果沒(méi)有,則停止。
		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", "蘋(píng)果");
		map.put("banana", "香蕉");
		map.put("orange", "橘子");
		//獲取所有value的Collection集合
		Collection<String> values = map.values();
		//使用value的Collection集合的迭代器
		Iterator<String> it = values.iterator();
		//判斷迭代器中是否還有元素,如果有,則進(jìn)入循環(huán);如果沒(méi)有,則停止。
		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é)果:

Map集合中如何獲取key-value值

到此,關(guān)于“Map集合中如何獲取key-value值”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI