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()) {
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()) {
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()) {
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()) {
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()) {
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()) {
String value = it.next();
System.out.println(value);
}
}
}
运行结果:
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
相关文章