Map如何根据key指定条件进行过滤筛选
Map根据key指定条件进行过滤筛选
public static void main(String[] args) { Map<String,String> map = new HashMap<>(); map.put("web_1","web1"); map.put("web_2","web2"); map.put("app_1","app1"); map.put("app_2","app2"); //根据key的指定前缀筛选Map map.entrySet().stream().filter(tmMap -> tmMap.getKey().substring(0,3).equals("web")).forEach(tmMap->{ System.out.println(tmMap.toString()); }); }
控制台:
通过给定的key筛选出只含有这些key的map
最近做项目遇到一个需求:
有一个list,里面的元素包含于一个map的key值,然后得出只含有这个list元素的map。
网上查了很多资料,都没有查到我想要的结果,最后还是在外国网站StackOverflow上找到的答案,不得不说这个外国网站里真是各种大神啊!
其实总结下来只有一行代码
map.keySet().retainAll(list);
但是需要注意
执行完这句代码后map会跟着发生变化,如果有多个不同的list,想通过这些list和原有的map去得到不同的筛选完的map,就得像下面这样做了:
Map<String, Object> newMap = new HashMap<String, Object>(map); newMap.keySet().retainAll(list);
将上面这两句代码封装成方法,最后返回newMap就可以了。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
BeanUtils.copyProperties()所有的空值不复制问题
这篇文章主要介绍了BeanUtils.copyProperties()所有的空值不复制问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-06-06Spring注解中@Autowired和@Bean的区别详解
这篇文章主要详细介绍了Spring注解中@Autowired和@Bean二者有什么区别,文中通过两个注解的使用场景介绍了二者的区别,感兴趣的同学可以参考阅读2023-06-06Lombok之@AllArgsConstructor的使用方式
这篇文章主要介绍了Lombok之@AllArgsConstructor的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2023-09-09java读取文件:char的ASCII码值=65279,显示是一个空字符的解决
这篇文章主要介绍了java读取文件:char的ASCII码值=65279,显示是一个空字符的解决,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-08-08
最新评论