开发者

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", "苹果http://www.devze.com");
    		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可以php调用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.HashtMeWtMap;
    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();
    		//判断迭代器中是否还有元素,如果有,则进入循环;如果没有,则停止。
    		wh编程客栈ile(it.hasN编程客栈ext()) {
    			/*通过next()方法获取迭代器中的元素,这里需要注意,每次循环,只能调用一次next()方法
    			 * 因为每调用一次next()方法就会获取一个元素,这里每调用一次,就会取出一个key
    			 */
    			String key = it.next();
    			System.out.println(key);
    			//如果想要获取key对应的value,也可以通过get()方法获取对应的value
    			System.out.pri开发者_Go入门ntln(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值的实现方法

    总结

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

    0

    上一篇:

    下一篇:

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    最新开发

    开发排行榜