map集合取并集,差集,交集
前段时间需要用到取两个集合的并集,差集,交集,在这贴下代码记录一下
1.获取两个map的并集
/** * 取Map集合的并集 * * @param map1 大集合 * @param map2 小集合 * @return 两个集合的并集 */ public static Map<String, Object> getUnionSetByGuava(Map<String, Object> map1, Map<String, Object> map2) { Set<String> bigMapKey = map1.keySet(); Set<String> smallMapKey = map2.keySet(); Set<String> differenceSet = Sets.union(bigMapKey, smallMapKey); Map<String, Object> result = Maps.newHashMap(); for (String key : differenceSet) { if (map1.containsKey(key)) { result.put(key, map1.get(key)); } else { result.put(key, map2.get(key)); } } return result; }
2.获取两个map差集
/** * 取Map集合的差集 * * @param bigMap 大集合 * @param smallMap 小集合 * @return 两个集合的差集 */ public static Map<String, Object> getDifferenceSetByGuava(Map<String, Object> bigMap, Map<String, Object> smallMap) { Set<String> bigMapKey = bigMap.keySet(); Set<String> smallMapKey = smallMap.keySet(); Set<String> differenceSet = Sets.difference(bigMapKey, smallMapKey); Map<String, Object> result = Maps.newHashMap(); for (String key : differenceSet) { result.put(key, bigMap.get(key)); } return result; }
3.获取连个map交集
/** * 取Map集合的交集(String,String) * * @param map1 大集合 * @param map2 小集合 * @return 两个集合的交集 */ public static Map<String, Object> getIntersectionSetByGuava(Map<String, Object> map1, Map<String, Object> map2) { Set<String> bigMapKey = map1.keySet(); Set<String> smallMapKey = map2.keySet(); Set<String> differenceSet = Sets.intersection(bigMapKey, smallMapKey); Map<String, Object> result = Maps.newHashMap(); for (String key : differenceSet) { result.put(key, map1.get(key)); } return result; }
标签:
java
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)