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}]