gpt4 book ai didi

java - 如何比较两个 HashMap

转载 作者:搜寻专家 更新时间:2023-11-01 03:02:34 26 4
gpt4 key购买 nike

我在这里填充了两个 Hashmap:

Properties properties = new Properties();
try {
properties.load(openFileInput("xmlfilesnames.xml"));
} catch (IOException e) {
e.printStackTrace();
}
for (String key : properties.stringPropertyNames()) {
xmlFileMap.put(key, properties.get(key).toString());
}

try {
properties.load(openFileInput("comparexml.xml"));
} catch (IOException e) {
e.printStackTrace();
}
for (String key : properties.stringPropertyNames()) {
compareMap.put(key, properties.get(key).toString());
}

声明:

public Map<String,String> compareMap = new HashMap<>();
public Map<String, String> xmlFileMap = new HashMap<>();

它们看起来像:

enter image description here

我如何检查 job_id 是否已更改或是否为 null?有时 job_id 并不真正存在。所以 job_id 是缺失的。

有时 compareMap 中有多个 job_id

如何只比较 job_id 并在比较时得到一个 boolean 值?

最佳答案

似乎您想根据特定模式找到 map 键。这可以通过遍历所有键来完成:

private static String PREFIX = "<job_id>";
private static String SUFFIX = "</job_id>";

public static String extractJobId(Map<String, ?> map) {
for(String key : map.keySet()) {
if(key.startsWith(PREFIX) && key.endsWith(SUFFIX))
return key.substring(PREFIX.length(), key.length()-SUFFIX.length());
}
// no job_id found
return null;
}

如果您可能有多个 job_id 键并想检查它们是否都相同,您可以构建一个中间集:

public static Set<String> extractJobIds(Map<String, ?> map) {
Set<String> result = new HashSet<>();
for(String key : map.keySet()) {
if(key.startsWith(PREFIX) && key.endsWith(SUFFIX))
result.add(key.substring(PREFIX.length(), key.length()-SUFFIX.length()));
}
return result;
}

现在可以用这个方法比较不同 map 的job_id:

if(Objects.equals(extractJobIds(xmlFileMap), extractJobIds(compareMap))) {
// ...
}

关于java - 如何比较两个 HashMap ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31941391/

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