gpt4 book ai didi

java - 如何比较两个 HashMap 并为相同的值显示 true?

转载 作者:行者123 更新时间:2023-12-01 22:25:29 33 4
gpt4 key购买 nike

我为两个 HashMap 编写了一个程序,它们具有相同的键但不同的值

session 键和值1:红色2:绿色3:蓝色4:紫罗兰色

数据库键和值1:灰色2:粉色3:蓝色4:黑色

我想要实现的是比较两个 HashMap 值并列出所有内容,但具有相同值的值应显示为 true像这样1红灰假2绿粉色假3 蓝色 蓝色 真4紫黑假

ClassComparator.java:我刚刚编写了这个程序来打印两个 HashMap 的值,请我需要一些帮助来解决进一步的查询。

public class ClassComparator {

Map<Integer, String> sessionValues;
Map<Integer, String> dbValues;
Map<Integer, String> combineKeyValues;

public ClassComparator() {
// /////popuulate session Values
combineKeyValues = new HashMap<Integer, String>();
sessionValues = new HashMap<Integer, String>();
sessionValues.put(1, "red");
sessionValues.put(2, "green");
sessionValues.put(3, "blue");
sessionValues.put(4, "violet");
System.out.println("Session Values : " + sessionValues);
dbValues = new HashMap<Integer, String>();
dbValues.put(1, "gray");
dbValues.put(2, "pink");
dbValues.put(3, "blue");
dbValues.put(4, "black");
System.out.println("Database Values : " + dbValues);
System.out.println("");
}

public List<QuestionResult> compareValues() {
List<QuestionResult> results = new ArrayList<QuestionResult>();

// /// comparison logic
System.out.println("Session Key and Values");
for (Map.Entry<Integer, String> sessionEntry : sessionValues.entrySet()) {
System.out.println(sessionEntry.getKey() + " : " +
sessionEntry.getValue());
}
System.out.println("");
System.out.println("Database Key and Values");
for (Map.Entry<Integer, String> dbEntry : dbValues.entrySet()) {
System.out.println(dbEntry.getKey() + " : " + dbEntry.getValue());
}

return results;
}

public static void main(String args[]) {
ClassComparator cc = new ClassComparator();
cc.compareValues();
}

谢谢。

最佳答案

您不需要 2 个单独的循环。迭代第一个映射,并从另一个映射中获取该键的值,然后比较它们。

示例代码:

Map<Integer, String> firstMap = new HashMap<Integer, String>();
Map<Integer, String> secondMap = new HashMap<Integer, String>();

for (Entry<Integer, String> firstEntry : firstMap.entrySet()) {
String firstMapValue = firstEntry.getValue();
String secondMapValue = secondMap.get(firstEntry.getKey());
System.out.println(firstEntry.getKey() + " " + firstMapValue + " " + secondMapValue + " " + firstMapValue.equals(secondMapValue));
}

关于java - 如何比较两个 HashMap 并为相同的值显示 true?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28861560/

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