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

Schreibe einen Kommentar