gpt4 book ai didi

java - 如何比较2个Maps Java的值

转载 作者:行者123 更新时间:2023-11-29 06:56:09 24 4
gpt4 key购买 nike

在高层次上,我正在尝试比较 2 个字符串映射的值

map 1:[{ExpID1, SomeExpValue1}, {ExpID2, SomeExpValue2}, ...]

map 2:[{FriID1, SomeFriValue1}, {FriID1, SomeFriValue2}, ...]

所以最终,我希望我的比较是这样的:

须藤代码:

if ( ExpID1.equals(FriID1) ) {
Assert.AssertEquals(SomeExpValue1, SomeFriValue1, "Library element does not match!")
}

然而,由于这些是 map ,因此需要一些循环。我真正的问题在这里,我怎样才能正确有效地循环而没有更多的嵌入式 foreach 或 forloops。这些似乎 super 昂贵。我觉得我当前的循环在某种程度上是错误的或不必要的昂贵。任何帮助或协助将不胜感激。

目前我拥有的是:

@Test
public void testIntegration() throws Exception {

// Get all files in directory
File[] files = getFilesInFolder(friendlyNamesDir);

String linkedResp = FileUtils.readFileToString(new File(explanationResponsePath));
Map<String, String> map1 = getIDTitleMapExpResponse(linkedResp, "node");

int counter = 1;
for(File f : files) {
if(f.length() == 0) throw new Exception("File does not exist...");


for(String expID : map1.keySet()) {
logger.info("Exp ID: "+expID);

Map<String, String> map2 = getIDNameMapFromFriendly(f.getCanonicalPath());
for(String friendlyID : map2.keySet()) {
logger.info(counter+" - Friendly ID: "+friendlyID+" Name: "+map2.get(friendlyID));
if(friendlyID.equals(expID)) {
Assert.assertEquals(map1.get(friendlyID), map2.get(expID));
}
counter++;
}
}
}
}

最佳答案

根据 Java 文档:
https://docs.oracle.com/javase/8/docs/api/java/util/Map.html#equals-java.lang.Object-

您可以直接比较 map ,它会确保检查 map 中的元素是否相等。

关于java - 如何比较2个Maps Java的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33711897/

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