最近做项目遇到一个需求:
有一个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就可以了。