Vergleich von zwei hashmap Wert mit den Tasten
Habe ich zwei HashMaps
.
HashMap<String, String> hMap=new HashMap<String, String>();
hMap.put("1","one");
hMap.put("2", "two");
hMap.put("3", "three");
hMap.put("4", "four");
HashMap<String, String> hMap2=new HashMap<String, String>();
hMap2.put("one", "");
hMap2.put("two", "");
Möchte ich vergleichen Sie die Taste hMap2 mit hMap, die nicht gleich sind, die ich brauche, um es in ein anderes hashMap.Für diese habe ich versucht, etwas wie dies.
HashMap<String, String> hMap3=new HashMap<String, String>();
Set<String> set1=hMap.keySet();
Set<String> set2=hMap2.keySet();
Iterator<String> iter1=set1.iterator();
Iterator<String> iter2=set2.iterator();
String val="";
while(iter1.hasNext()) {
val=iter1.next();
System.out.println("key and value in hmap is "+val+" "+hMap.get(val));
iter2=set2.iterator();
while(iter2.hasNext()) {
String val2=iter2.next();
System.out.println("val2 value is "+val2);
if(!hMap.get(val).equals(val2)) {
hMap3.put(val, hMap.get(val));
System.out.println("value adding");
}
}
}
System.out.println("hashmap3 is "+hMap3);
Den Ausgang, ich bin immer hier ist
hashmap3 is {3=three, 2=two, 1=one, 4=four}
Meine Erwartete Ausgabe ist
hashmap3 is {3=three, 4=four}
Bitte korrigieren Sie meine Logik.Vielen Dank im Voraus
InformationsquelleAutor Vignesh Vino | 2013-08-31
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie wirklich sind, erschwert Ihre Aufgabe. Sie don T müssen Durchlaufen eine 2. Karte bei der alle. Sie können
Map#containsKey()
Methode, um zu überprüfen, ob die Werte in der ersten Karte ist der Schlüssel in der 2. Karte.So, Sie brauchen nur die Iteration über die erste Karte. Da möchte man beide Schlüssel und Werte, können Sie Durchlaufen die
Map.Entry
von der ersten Karte. Die bekommst du mitMap#entrySet()
.Da die Werte der ersten Karte ist der Schlüssel in der zweiten, müssen Sie die
containsKey
Methode auf dieGekennzeichnet.Eintrag#getValue()
Methode:Du bist willkommen 🙂
InformationsquelleAutor Rohit Jain