Java 8的新手,我无法解决这个问题。
我有两张TreeMap<Long, Integer>
类型的地图,一张叫patternMap
,另一张叫answerMap
。
patternMap
被硬编码以查找键值对的特定模式,因此有许多patternMap
,并且它们的大小始终小于或等于{{1 }}。
我想检查哪些answerMap
匹配patternMap
,我的意思是我需要在键和值上完全匹配,而不仅仅是一个。
我无法使用answerMap
方法,因为submap
可能没有连续的密钥范围。
显而易见的方法是遍历patternMap
并使用patternMap
方法检查每个Map.Entry
对象。但是,我有很多equals
来检查特定的patternMap
,所以我很想知道是否有更好的方法,可能使用lambdas / streams。
我也无法修改answerMap
或answerMap
,所以这必须是一个非变异函数。
我使用patternMap
&#39; s因为排序对应用程序非常重要。
这里没有代码,因为我还没有办法做到这一点,但伪代码看起来像这样:
TreeMap
编辑:这里有一些定义(这不是工作代码,但希望问题更清楚:
for every patternMap in the Collection {
if answerMap contains patternMap, make a note
}
答案 0 :(得分:5)
这应该可以解决问题:
answerMap.entrySet().containsAll(patternMap.entrySet())