I have two 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", "");
I want to compare the hMap2 key with hMap, which are not equal. I need to put it in another hashMap. For this, I tried something like this.
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);
The output I get here is
hashmap3 is {3=three, 2=two, 1=one, 4=four}
My expected result
hashmap3 is {3=three, 4=four}
Please correct my logic. thanks in advance
source share