我使用Scanner读取A.txt以生成A Hashmap, 也可以通过B.txt读取B Hashmap的方法相同。 这两个hashmap有" SOME"相同的钥匙,并希望相互结合。 如果密钥相同,则打印出" key,value1,value2"。 到目前为止我在这里:
public static void main (String[] args) throws FileNotFoundException {
Scanner scanner1 = new Scanner(new File("score.txt"));
Map<String, String> tolerance = new HashMap<>();
Scanner scanner2 = new Scanner(new File("Count2.txt"));
Map<String, String> Pdegree = new HashMap<>();
while (scanner1.hasNextLine()) {
String line = scanner1.nextLine();
String[] array = line.split("\t",2);
String Name = array[0];
String score = array[1];
tolerance.put(Name,score);
}
while (scanner2.hasNextLine()) {
String line2 = scanner2.nextLine();
String[] array2 = line2.split("\t",2);
String Name2 = array2[0];
String degree = array2[1];
Pdegree.put(Name2,degree);
}
for(Map.Entry<String, String> entry : tolerance.entrySet()) {
String key = entry.getKey();
String value = entry.getValue();
for(Map.Entry<String, String> entry2 : Pdegree.entrySet()) {
String key2 = entry2.getKey();
String value2 = entry2.getValue();
if(key==key2){
System.out.println(key2 + "\t" + value + "\t" + value2);
}
}
}
}
}
既不会显示结果也不会显示错误消息。 我的问题是如何使用两个地图中的相应值提取相同的密钥。谢谢。
答案 0 :(得分:1)
我自己找到了答案。它应该是
if(key.equals(key2))
答案 1 :(得分:0)
您可以使用map1.putAll(map2)
组合两张地图;
答案 2 :(得分:0)
为什么不使用Guava的多图?我相信如果你使用put all它会遇到两个相同的键,它只是为键增加了第二个值。然后你可以打印出所有的键值对。如果它具有相同的密钥和相同的值,那么它依赖于实现。