gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 23:16:28 25 4
gpt4 key购买 nike

Java 8 的新手,我无法弄清楚这一点。我有两张类型为 TreeMap<Long, Integer> 的 map , 一个叫做 patternMap和另一个answerMap .

patternMap被硬编码以寻找键值对的特定模式,所以有很多 patternMap的,并且它们的大小始终小于或等于 answerMap .我想检查哪个patternMap s 在 answerMap 中匹配,我的意思是我需要键和值都完全匹配,而不仅仅是一个。

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

这里没有代码,因为我还没有找到这样做的方法,但是伪代码看起来像这样:

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

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

 private static final TreeMap<Long, Integer> patternMap1;
private static final TreeMap<Long, Integer> patternMap2;
private static final ArrayList<TreeMap> listOfPatternMaps;
private TreeMap<Long, Integer> answerMap;

private Set<TreeMap<Long, Integer>> findPatterns(TreeMap answerMap) {
this.answerMap = answerMap;
for(patternMap : listOfPatternMaps) {
if answerMap contains patternMap {
make a note
}
}
return setOfMatchedPatterns;
}

最佳答案

这应该可以解决问题:

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

关于java - 如何检查 TreeMap 是否是 Java 中另一个 TreeMap 的子图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36513765/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com