I have two list
    List<Map<String,Object>> list1 =  new ArrayList<Map<String,Object>>();
    List<Map<String,Object>> list2 =  new ArrayList<Map<String,Object>>();
    HashMap<String, Object> hm = new HashMap<String, Object>();
    hm.put("1", new Long(1L));
    HashMap<String, Object> hm2 = new HashMap<String, Object>();
    hm2.put("2", new Long(2L));
    HashMap<String, Object> hm3 = new HashMap<String, Object>();
    hm3.put("3", new Long(3L));
    HashMap<String, Object> hm4 = new HashMap<String, Object>();
    hm4.put("4", new Long(4L));
    list1.add(hm);
    list1.add(hm2);
    list1.add(hm3);
    list1.add(hm4);
    HashMap<String, Object> hm1 = new HashMap<String, Object>();
    hm1.put("1", new Long(1L));
    HashMap<String, Object> hm5 = new HashMap<String, Object>();
    hm5.put("2", new Long(2L));
    list2.add(hm1);
    list2.add(hm5);
I want to remove all objects from list1 that does not exist in another list2 
My expected output is list1 -- [{2=2, 1=1}]
I can Iterate through list1 and can check if element present then do nothing else remove the element. But I want to know is there a better approach or simpler code?
 
    