У меня есть два спискаУдалить все объекты из списка, которые не существуют в другом списке
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);
Я хочу, чтобы удалить все объекты из list1, которые не существуют в другом list2
Мой ожидается выход list1 -- [{2=2, 1=1}]
Я могу перебирать через list1 и могу проверить, присутствует ли элемент, а затем ничего не удалять. Но я хочу знать, есть ли лучший подход или более простой код?
Дубликат http://stackoverflow.com/questions/16888265/remove-all-objects-in-an-arraylist-that-exist-in-another-arraylist? –
Используете ли вы Java 8? – MadConan
java version "1.6.0_43" – Amar