比较两个ArrayLists并从原始ArrayList

时间:2017-05-29 08:21:01

标签: java android arraylist

我有两个自定义Arraylist

List<Item> before = new ArrayList<Item>();
List<ItemEx> after = new ArrayList<ItemEx>();

before.add(new Item(1L,"test1"));
before.add(new Item(2L,"test2"));
before.add(new Item(3L,"test3"));

after.add(new ItemEx(1L,"test4"));
after.add(new ItemEx(2L,"test5"));
after.add(new ItemEx(4L,"test6")); 
after.add(new ItemEx(5L,"test7")); 

我想将元素存储在List<ItemEx> after中,而元素应该在删除公共元素{3L, 4L, 5L}之后。

3 个答案:

答案 0 :(得分:1)

试试这个:

HashSet hs = new HashSet();
hs.addAll(before);
hs.addAll(after);
after.clear();
after.addAll(hs);

现在,在列表中你得到了欲望值。

答案 1 :(得分:1)

FYI

List<Item> &amp; List<ItemEx> 相同类型

<强>逻辑

List<String> before = new ArrayList<String>();
List<String> after = new ArrayList<String>(); 
List<String> list_checking = new ArrayList<String>(before);
                            list_checking.addAll(after);
                            List<String> list_common = new ArrayList<String>(before);
                            list_common.retainAll(after);
                            list_checking.removeAll(list_common);

答案 2 :(得分:0)

简单。如果您希望将来使用,请将现有的副本复制到临时变量中。

ArrayList temporiginalArrList = OriginalArrayList; //这里&#39; T&#39;可以是想要保存的特定对象

OriginalArrayList.removeAll(secondArrayList);