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

Java 如何比较两个HashMap并为相同的值显示true?,java,Java,我已经为两个hashmaps编写了一个程序,这两个hashmaps的键相同,但值不同 会话密钥和值 1:红色 2:绿色 3:蓝色 4:紫罗兰 数据库键和值 1:灰色 2:粉红色 3:蓝色 4:黑色 我想要实现的是比较两个hashmaps值并列出所有内容,但是具有相同值的那些应该显示为true 这样地 1红灰色假 2绿粉假 3蓝色-蓝色-真的 4紫黑色假 java:我刚刚编写了这个程序来打印这两个hashmap的值,我需要一些帮助来解决进一步的查询 public class ClassCompar

我已经为两个hashmaps编写了一个程序,这两个hashmaps的键相同,但值不同

会话密钥和值 1:红色 2:绿色 3:蓝色 4:紫罗兰

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

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

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();
}
公共类类比较器{
映射会话值;
映射DBV值;
映射组合键值;
公共类比较器(){
////populate会话值
combineKeyValues=新HashMap();
sessionValues=newhashmap();
sessionValues.put(1,“红色”);
sessionValues.put(2,“绿色”);
sessionValues.put(3,“蓝色”);
sessionValues.put(4,“紫色”);
System.out.println(“会话值:”+会话值);
dbValues=newhashmap();
dbValues.put(1,“灰色”);
dbValues.put(2,“粉色”);
dbValues.put(3,“蓝色”);
dbValues.put(4,“黑色”);
System.out.println(“数据库值:”+dbValues);
System.out.println(“”);
}
公共列表比较值(){
列表结果=新建ArrayList();
/////比较逻辑
System.out.println(“会话键和值”);
对于(Map.Entry sessionEntry:sessionValues.entrySet()){
System.out.println(sessionEntry.getKey()+“:”+
getValue());
}
System.out.println(“”);
System.out.println(“数据库键和值”);
对于(Map.Entry dbEntry:dbValues.entrySet()){
System.out.println(dbEntry.getKey()+“:”+dbEntry.getValue());
}
返回结果;
}
公共静态void main(字符串参数[]){
ClassComparator cc=新的ClassComparator();
cc.compareValues();
}

谢谢。

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

示例代码:

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));
}
Map firstMap=newhashmap();
Map secondMap=newhashmap();
for(条目firstEntry:firstMap.entrySet()){
字符串firstMapValue=firstEntry.getValue();
字符串secondMapValue=secondMap.get(firstEntry.getKey());
System.out.println(firstEntry.getKey()+“”+firstMapValue+“”+secondMapValue+“”+firstMapValue.equals(secondMapValue));
}

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

示例代码:

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));
}
Map firstMap=newhashmap();
Map secondMap=newhashmap();
for(条目firstEntry:firstMap.entrySet()){
字符串firstMapValue=firstEntry.getValue();
字符串secondMapValue=secondMap.get(firstEntry.getKey());
System.out.println(firstEntry.getKey()+“”+firstMapValue+“”+secondMapValue+“”+firstMapValue.equals(secondMapValue));
}

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

示例代码:

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));
}
Map firstMap=newhashmap();
Map secondMap=newhashmap();
for(条目firstEntry:firstMap.entrySet()){
字符串firstMapValue=firstEntry.getValue();
字符串secondMapValue=secondMap.get(firstEntry.getKey());
System.out.println(firstEntry.getKey()+“”+firstMapValue+“”+secondMapValue+“”+firstMapValue.equals(secondMapValue));
}

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

示例代码:

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));
}
Map firstMap=newhashmap();
Map secondMap=newhashmap();
for(条目firstEntry:firstMap.entrySet()){
字符串firstMapValue=firstEntry.getValue();
字符串secondMapValue=secondMap.get(firstEntry.getKey());
System.out.println(firstEntry.getKey()+“”+firstMapValue+“”+secondMapValue+“”+firstMapValue.equals(secondMapValue));
}