Map集合中获取key-value值的实现方法

目录
  • 一、前置准备
  • 二、获取Map的key-value值
    • 方法一
    • 方法二
    • 方法三
  • 总结

Map<K,V>集合是一种键值映射形式的集合。

当调用put(K key,V value)方法把数据存到Map中后,如何把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值,以及通过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中的所有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);
			}
			}
		}

运行结果:

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Java中HashMap获取值的几种方式汇总

    目录 Java HashMap获取值的方式 Java HashMap基本用法 总结 Java HashMap获取值的方式 1.通过keySet()方法获取key的集合,因为在HashMap中key值不能重复,所以返回的是一个Set()类型. 2.通过entrySet()方法获取键值对的集合,再通过getKey()和getValue()方法获取key和value. 3.通过values()方法获取value集合,因为value可以重复,因此返回的类型为Collection. package com

  • Java使用keySet方法获取Map集合中的元素

    本文为大家分享了Map集合中利用keySet方法获取所有的元素值,供大家参考,具体内容如下 /*--------------------------- Map集合中利用keySet方法获取所有的元素值: ....keySet方法:将Map中的所有key值存入到Set集合中, ....利用Set集合提供的迭代器获取到每一个key值,再通过key值获得相应的value值 ----------------------------*/ package pack03; import java.util.*

  • Java实现过滤掉map集合中key或value为空的值示例

    本文实例讲述了Java实现过滤掉map集合中key或value为空的值.分享给大家供大家参考,具体如下: import java.util.Collection; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; /** * 过滤掉map集合中key或value为空的值 * @author lmb * @date 2017-3-14 */ public

  • 浅谈Map集合中get不存在的key值,会抛出异常吗?

    我就废话不多说了,大家还是直接看代码吧~ public static void main(String[] args) { Map<String, String> a = new HashMap<String, String>(); String string = a.get("a111"); System.out.println(string); } 在Map集合中,get一个不存在的值,不会抛出异常,获得的返回值为null. 补充知识:map中get不存在的

  • Java使用entrySet方法获取Map集合中的元素

    本文为大家分享了使用entrySet方法获取Map集合中元素的具体代码,供大家参考,具体内容如下 /*--------------------------------- 使用entrySet方法取出Map集合中的元素: ....该方法是将Map集合中key与value的关系存入到了Set集合中,这个关系的数据类型是Map.Entry ....entrySet方法返回值类型的具体写法为:Set< Map.Entry<KeyType , ValueType> > -----------

  • C# List集合中获取重复值及集合运算详解

    话不多说,直接上实例: 一.获取集合内重复值 public void GetDuplicateValue() { List<string> lisA = new List<string> { "A", "B", "C", "A" }; //方式一 借助字典 Dictionary<string, int> dic = new Dictionary<string, int>(); l

  • java的Map集合中按value值进行排序输出的实例代码

    java的Map集合中按value值进行排序输出的实例代码 import java.util.Arrays; import java.util.Comparator; import java.util.HashMap; import java.util.Map; import java.util.Set; public class Test { public static void main(String[] args) { Map<String ,Integer> map = new Has

  • Java中Map集合中的Entry对象用法

    Entry: 键值对 对象. 在Map类设计是,提供了一个嵌套接口(static修饰的接口):Entry.Entry将键值对的对应关系封装成了对象,即键值对对象,这样我们在遍历Map集合时,就可以从每一个键值对(Entry)对象中获取对应的键与对应的值. Entry为什么是静态的? Entry是Map接口中提供的一个静态内部嵌套接口,修饰为静态可以通过类名调用. Map集合遍历键值对的方式: Set<Map.Entry<K,V>> entrySet(); //返回此映射中包含的映射

  • java8实现list集合中按照某一个值相加求和,平均值等操作代码

    集合: List<User> user = new User(); user .stream().collect(Collectors.summingInt(User::getAge)) 参数类型: summarizingDouble 统计数据(double)状态, 其中包括count min max sum和平均值 summarizingInt 统计数据(int)状态, 其中包括count min max sum和平均值 summarizingLong 统计数据(long)状态, 其中包括c

  • Python从单元素字典中获取key和value的实例

    之前写代码很多时候会遇到这么一种情况:在python的字典中只有一个key/value键值对,想要获取其中的这一个元素还要写个for循环获取. 网上搜了一下,发现还有很多简单的方法: 方法一 d = {'name':'haohao'} (key, value), = d.items() 方法二 d = {'name':'haohao'} key = list(d)[0] value = list(d.values())[0] 方法三 d = {'name':'haohao'} key, = d

  • 详解JAVA中获取文件MD5值的四种方法

    JAVA中获取文件MD5值的四种方法其实都很类似,因为核心都是通过JAVA自带的MessageDigest类来实现.获取文件MD5值主要分为三个步骤,第一步获取文件的byte信息,第二步通过MessageDigest类进行MD5加密,第三步转换成16进制的MD5码值.几种方法的不同点主要在第一步和第三步上.具体可以看下面的例子: 方法一. private final static String[] strHex = { "0", "1", "2"

随机推荐