java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > java Map集合取键和值

java Map集合中取键和值的4种方式举例

作者:愚公搬程序

Java中的Map是一种键值对存储的数据结构,其中每个键都唯一,与一个值相关联,这篇文章主要给大家介绍了关于java Map集合中取键和值的4种方式,文中通过代码介绍的非常详细,需要的朋友可以参考下

1、使用Map的keySet()方法获取键集合,再使用forEach循环遍历键集合,通过Map的get()方法获取对应的值。例如:

Map<String, Integer> map = new HashMap<>();
map.put("apple", 1);
map.put("banana", 2);
map.put("orange", 3);

// 获取键集合,遍历键集合,通过get()方法获取对应的值
Set<String> keySet = map.keySet();
for (String key : keySet) {
   Integer value = map.get(key);
   System.out.println("key:" + key + ",value:" + value);
}

2、使用Map的values()方法获取值集合,再使用forEach循环遍历值集合。例如:

Map<String, Integer> map = new HashMap<>();
map.put("apple", 1);
map.put("banana", 2);
map.put("orange", 3);

// 获取值集合,遍历值集合
Collection<Integer> values = map.values();
for (Integer value : values) {
   System.out.println("value:" + value);
}

3、使用Map的entrySet()方法获取键值对集合,再使用forEach循环遍历键值对集合,通过Entry的getKey()方法获取键,通过Entry的getValue()方法获取值。例如:

Map<String, Integer> map = new HashMap<>();
map.put("apple", 1);
map.put("banana", 2);
map.put("orange", 3);

// 获取键值对集合,遍历键值对集合,通过Entry的getKey()方法获取键,通过Entry的getValue()方法获取值
Set<Entry<String, Integer>> entrySet = map.entrySet();
for (Entry<String, Integer> entry : entrySet) {
   String key = entry.getKey();
   Integer value = entry.getValue();
   System.out.println("key:" + key + ",value:" + value);
}

4、使用Java8的Stream流获取键值对集合,通过map方法获取键或值的流。例如:

Map<String, Integer> map = new HashMap<>();
map.put("apple", 1);
map.put("banana", 2);
map.put("orange", 3);

// 获取键流,遍历键流
map.keySet().stream().forEach(key -> System.out.println("key:" + key));

// 获取值流,遍历值流
map.values().stream().forEach(value -> System.out.println("value:" + value));

// 获取键值对流,遍历键值对流,通过Entry的getKey()方法获取键,通过Entry的getValue()方法获取值
map.entrySet().stream().forEach(entry -> System.out.println("key:" + entry.getKey() + ",value:" + entry.getValue()));

附:遍历获取Map集合中的键和值

写在前面:前段时间找工作,遇到一道面试题,要求遍历取出Map集合的键和值,没有要求使用多种方法,做完面试题就想着整理一下,让自己多多积累。

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class Base2 {
    /**
     *
     * @param args
     */
    public static void main(String[] args) {
        Map<String, Object> map = new HashMap<>();
        map.put("1", "张三");
        map.put("2", "李四");
        map.put("3", "王五");
        //方法一:使用keySet()方法将key放入set中
        Set<String> set = map.keySet();//先使用set得到map的所有key
        Iterator<String> it = set.iterator();//构造set的迭代器
        while (it.hasNext()) {
            String key = it.next();
            Object value = map.get(key);
            System.out.println("key" + key + "value" + value);
        }
        //方法二 : 用增强for循环来代替 iterator
        Set<String> set1 = map.keySet();
        for (String key1 : set1) {
            Object value1 = map.get(key1);
            System.out.println("key" + key1 + "value" + value1);
            //方法三 :将map的键值对用entrySet方法取出,再放入到set当中
            Set<Map.Entry<String, Object>> map1 = map.entrySet();
            for (Map.Entry<String, Object> maps :
                      map1) {
                String key2 = maps.getKey();
                Object Value2 = maps.getValue();
                System.out.println("key" + key2 + "value" + Value2);
            }
            //方法四
            Iterator iterator = map.entrySet().iterator();
            while (iterator.hasNext()){
                Map.Entry maps = ( Map.Entry)iterator.next();
                Object key = maps.getKey();
                Object value = maps.getValue();
                System.out.println("key" + key + "value" + value);
            }
        }
    }}

总结 

到此这篇关于java Map集合中取键和值的4种方式的文章就介绍到这了,更多相关java Map集合取键和值内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文