Map如何根据key指定条件进行过滤筛选
作者:Yang疯狂打码中
这篇文章主要介绍了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就可以了。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。