温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2023-03-22 10:48:45 来源:亿速云 阅读:143 作者:iii 栏目:开发技术

这篇文章主要介绍“Map集合中如何获取key-value值”,在日常操作中,相信很多人在Map集合中如何获取key-value值问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Map集合中如何获取key-value值”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

一、前置准备

以HashMap为例,先为map中存入几个数据,以便于后边对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值分别有以下几种方式,使用时可以根据不同的场景,选择对应的取值方式。

方法一

  • 同时获取Map中的key值和value值。

  • 此方法通常在要遍历展示这个map中所有的key和value

例如:

//调用entrySet方法,将获取到的键值对存放进Entry的Set集合
		Set<Entry<String, String>> entrySet = map.entrySet();
		//获取Entry的Set集合的迭代器
		Iterator<Entry<String, String>> it = entrySet.iterator();
		//判断迭代器中是否还有元素,如果有,则进入循环;如果没有,则停止。
		while(it.hasNext()) {
			/*通过next()方法获取迭代器中的元素,这里需要注意,每次循环,只能调用一次
			 * next()方法,因为每调用一次next()方法就会获取一个元素
			 * 例如,当多次要调用这个entry对象时,可以先把it.next();获取出来并用
			 * entry对象来接收一下
			 */
			Entry<String, String> entry = it.next();
			//获取到entry对象后,如果想要获取key,可以调用getKey(),想要获取value可以调用getValue()
			System.out.println(entry.getKey()+"  "+entry.getValue());
		}

运行一下:

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", "橘子");
		//调用entrySet方法,将获取到的键值对存放进Entry的Set集合
		Set<Entry<String, String>> entrySet = map.entrySet();
		//获取Entry的Set集合的迭代器
		Iterator<Entry<String, String>> it = entrySet.iterator();
		//判断迭代器中是否还有元素,如果有,则进入循环;如果没有,则停止。
		while(it.hasNext()) {
			/*通过next()方法获取迭代器中的元素,这里需要注意,每次循环,只能调用一次
			 * next()方法,因为每调用一次next()方法就会获取一个元素
			 * 例如,当多次要调用这个entry对象时,可以先把it.next();获取出来并用
			 * entry对象来接收一下
			 */
			Entry<String, String> entry = it.next();
			//获取到entry对象后,如果想要获取key,可以调用getKey(),想要获取value可以调用getValue()
			System.out.println(entry.getKey()+"  "+entry.getValue());
		}
		
		
	}
}

运行结果:

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

方法二    

  • 获取Map中的所有key值,以及通过key值获取对应的value值。

  • 此方法可以用在一些需要判断是否是指定key的情况下,获取该key对应的value。

例如:

//获取所有key的Set集合
		Set<String> keySet = map.keySet();
		//获取key的Set集合的迭代器
		Iterator<String> it = keySet.iterator();
		//判断迭代器中是否还有元素,如果有,则进入循环;如果没有,则停止。
		while(it.hasNext()) {
			/*通过next()方法获取迭代器中的元素,这里需要注意,每次循环,只能调用一次next()方法
			 * 因为每调用一次next()方法就会获取一个元素,这里每调用一次,就会取出一个key
			 */
			String key = it.next();
			System.out.println(key);
			//如果想要获取key对应的value,也可以通过get()方法获取对应的value
			System.out.println(key+" "+map.get(key));
		}		

运行一下:

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();
		//判断迭代器中是否还有元素,如果有,则进入循环;如果没有,则停止。
		while(it.hasNext()) {
			/*通过next()方法获取迭代器中的元素,这里需要注意,每次循环,只能调用一次next()方法
			 * 因为每调用一次next()方法就会获取一个元素,这里每调用一次,就会取出一个key
			 */
			String key = it.next();
			System.out.println(key);
			//如果想要获取key对应的value,也可以通过get()方法获取对应的value
			System.out.println(key+" "+map.get(key));
		}
		}
		}

运行结果:

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

方法三

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

//获取所有value的Collection集合
		Collection<String> values = map.values();
		//使用value的Collection集合的迭代器
		Iterator<String> it = values.iterator();
		//判断迭代器中是否还有元素,如果有,则进入循环;如果没有,则停止。
		while(it.hasNext()) {
			/*通过next()方法获取迭代器中的元素,这里需要注意,每次循环,只能调用一次next()方法
			 * 因为每调用一次next()方法就会获取一个元素,这里每调用一次,就会取出一个value
			 */
			String value = it.next();
			System.out.println(value);
			
		}

运行一下:

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();
		//判断迭代器中是否还有元素,如果有,则进入循环;如果没有,则停止。
		while(it.hasNext()) {
			/*通过next()方法获取迭代器中的元素,这里需要注意,每次循环,只能调用一次next()方法
			 * 因为每调用一次next()方法就会获取一个元素,这里每调用一次,就会取出一个value
			 */
			String value = it.next();
			System.out.println(value);
			}
			}
		}

运行结果:

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

到此,关于“Map集合中如何获取key-value值”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI