java怎么遍历map

2025-10-29 21:43:46

1、创建一个简单的Map,存储了3个人名与年龄,其中一个年龄数据缺失。

Map<String, Integer> map = new HashMap<>();map.put("Tom", 15);map.put("Jack", 17);map.put("John", null);

java怎么遍历map

1、只需要遍历key 的话,使用map接口的keySet方法取出装满所有key的一个Set,遍历keySet就行

for (String key : map.keySet()) {    System.out.println("key:" + key);}

java怎么遍历map

java怎么遍历map

1、与遍历key的用法类似

for (Integer value : map.values()) {    System.out.println("value:" + value);}

java怎么遍历map

java怎么遍历map

1、key和value都需要的话,使用entrySet方法速度比用keySet取出来,再根据key在map中取value更快。

for (Map.Entry<String, Integer> entry : map.entrySet()) {    System.out.println("key:" + entry.getKey() + ",value:" + entry.getValue());}

java怎么遍历map

java怎么遍历map

1、遍历时需要删除的话,可以使用Iterator。比如删除年龄为空的人。

Iterator<Map.Entry<String, Integer>> entries = map.entrySet().iterator();while (entries.hasNext()) {    Map.Entry<String, Integer> entry = entries.next();    System.out.println("key:" + entry.getKey() + ",value:" + entry.getValue());    if(entry.getValue()==null){        entries.remove();    }}

java怎么遍历map

1、java8的Map与Set接口新增了foreach方法,可以在后面使用lambda表达式,简洁程度不亚于foreach循环,可读性要更好。下面2种方式似乎第二种更啰嗦,但是map.entrySet()后面可接强大的stream方法,进行各种对集合的强大操作。

map.forEach((key, value) -> {    System.out.println("key:" + key + ",value:" + value);});map.entrySet().forEach(entry -> {    System.out.println("key:" + entry.getKey() + ",value:" + entry.getValue());});

java怎么遍历map

java怎么遍历map

2、假如我想去掉集合种value为空的键值对,并且以json字符串的形式打印这个Map,使用java8的流式数据处理方法可以用最为简洁易读的方式实现它。Map不能直接转化为流,需要先转化为Set。

String json = map.entrySet().stream()        .filter(entry -> entry.getKey() != null)        .map(entry -> entry.getKey() + ":" + entry.getValue())        .collect(Collectors.joining(",","{","}"));System.out.println(json);

java怎么遍历map

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢