java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Map根据key指定条件进行过滤筛选

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就可以了。

总结

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

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