今天在业务上遇到一个问题,有新旧两个map,需要得到两个map的交集,并在其中旧的map中删除交集,新的map去库中新增.
新增直接update,map删除交集,直接遍历remove也可以,
那么怎么得到两个map的交集呢?
首先我们要了解map的一个函数--keySet():
其作用是:将map映射中所有的键(key)放到set集合中 -->Set<String> set = map.keySet();
通过这个函数我们就可以得到两个map的所有key,接下来遍历进行比较,若有相同的进行remove即可,如果你觉得遍历比较很low,还可以通过set1.retainAll(set2)方法来进行取交集,在遍历取交集后的set1,remove(key)即可.
代码如下:
Set<String> oldKeys = map1.keySet();
Set<String> newKeys = map2.keySet();
oldKeys.retainAll(newKeys);
for(String key : oldKeys){
map1.remove(key);
}
本文介绍了如何在Java中高效地获取两个Map的交集,并从旧Map中删除这些交集项。通过使用keySet()方法转换为Set,然后利用retainAll()方法取交集,最后遍历并移除旧Map中的交集键值。这种方法避免了传统的遍历比较,提高了代码效率。
491

被折叠的 条评论
为什么被折叠?



