Java 从列表中删除其他列表中不存在的所有对象

Java 从列表中删除其他列表中不存在的所有对象,java,arraylist,collections,hashmap,java-collections-api,Java,Arraylist,Collections,Hashmap,Java Collections Api,我有两张单子 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 H

我有两张单子

    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);
List list1=new ArrayList();
List list2=新的ArrayList();
HashMap hm=新的HashMap();
hm.put(“1”,新长(1L));
HashMap hm2=新的HashMap();
hm2.put(“2”,新长(2L));
HashMap hm3=新的HashMap();
hm3.put(“3”,新长(3L));
HashMap hm4=新的HashMap();
hm4.put(“4”,新长(4L));
列表1.添加(hm);
列表1.添加(hm2);
列表1.添加(hm3);
列表1.添加(hm4);
HashMap hm1=新的HashMap();
hm1.put(“1”,新长(1L));
HashMap hm5=新的HashMap();
hm5.put(“2”,新长(2L));
列表2.添加(hm1);
列表2.添加(hm5);
我想从列表1中删除其他列表2中不存在的所有对象
我期望的输出是
list1--[{2=2,1=1}]

我可以遍历列表1,检查元素是否存在,然后不做任何其他操作来删除元素。但我想知道是否有更好的方法或更简单的代码

该方法正是为了这个目的而存在的:

仅保留此集合中包含在指定集合中的元素。换句话说,从该集合中删除指定集合中不包含的所有元素

用途如下:

list1.retainAll(list2);

但是,它可能不会比简单的迭代方法更有效,除非您使用
Set
s而不是
List
s.

replice of?您使用的是Java 8吗?Java版本“1.6.043”您的意思是也要聚合哈希映射的内容吗?还是您希望预期的输出是
[{“2”=2L},{“1”=1L}]
?我想要输出
[{“2”=2L},{“1”=1L}]