java.util.Map 的交集

中是否有方法或任何实用程序在两个地图上执行交集?(通过“键”与两张地图相交)java.util.Map

我找不到任何东西。我总是可以实现我自己的交集逻辑,但我希望在其中一个类中已经有一些操作可以做到这一点。java.util.*


答案 1

怎么样:

Map map1 = ...;
Map map2 = ...;
Map result = new ...(map1);
result.keySet().retainAll(map2.keySet());

艺术

Map map1 = ...;
Map map2 = ...;
Set result = new ...(map1.keySet());
result.retainAll(map2.keySet());

答案 2

如果您使用的是 Guava,则可以使用 Maps.difference 获取 MapDifference 对象,从中可以提取 和 作为映射。(披露:我为番石榴做出贡献。entriesInCommon()entriesDiffering()