如何检查TreeMap是否是Java中另一个TreeMap的子图

时间:2016-04-09 07:00:34

标签: java dictionary collections

Java 8的新手,我无法解决这个问题。 我有两张TreeMap<Long, Integer>类型的地图,一张叫patternMap,另一张叫answerMap

patternMap被硬编码以查找键值对的特定模式,因此有许多patternMap,并且它们的大小始终小于或等于{{1 }}。 我想检查哪些answerMap匹配patternMap,我的意思是我需要在键和值上完全匹配,而不仅仅是一个。

我无法使用answerMap方法,因为submap可能没有连续的密钥范围。 显而易见的方法是遍历patternMap并使用patternMap方法检查每个Map.Entry对象。但是,我有很多equals来检查特定的patternMap,所以我很想知道是否有更好的方法,可能使用lambdas / streams。 我也无法修改answerMapanswerMap,所以这必须是一个非变异函数。 我使用patternMap&#39; s因为排序对应用程序非常重要。

这里没有代码,因为我还没有办法做到这一点,但伪代码看起来像这样:

TreeMap
编辑:这里有一些定义(这不是工作代码,但希望问题更清楚:

for every patternMap in the Collection {
   if answerMap contains patternMap, make a note
}

1 个答案:

答案 0 :(得分:5)

这应该可以解决问题:

answerMap.entrySet().containsAll(patternMap.entrySet())