Java 比较两个ArrayList并从原始ArrayList中删除重复项
我有两个自定义Arraylist: 我想在删除公共元素后将元素存储在列表中,并且该元素应该在删除公共元素后{3L,4L,5L}。尝试以下操作:Java 比较两个ArrayList并从原始ArrayList中删除重复项,java,android,arraylist,Java,Android,Arraylist,我有两个自定义Arraylist: 我想在删除公共元素后将元素存储在列表中,并且该元素应该在删除公共元素后{3L,4L,5L}。尝试以下操作: HashSet hs = new HashSet(); hs.addAll(before); hs.addAll(after); after.clear(); after.addAll(hs); 现在,在after列表中,您可以得到期望值。FYI 列表和列表应为同一类型 逻辑 很简单。如果希望将来使用,请将现有变量的副本放入临时变量中 ArrayLis
HashSet hs = new HashSet();
hs.addAll(before);
hs.addAll(after);
after.clear();
after.addAll(hs);
现在,在after列表中,您可以得到期望值。FYI
列表和列表应为同一类型
逻辑
很简单。如果希望将来使用,请将现有变量的副本放入临时变量中 ArrayList temporiginalArrList=原始ArrayList; //此处的“T”可以是要保存的特定对象
OriginalArrayList.removeAllsecondArrayList 将这两个列表中的项添加到HASHSET中,然后您将只获得1L、2L、3L、4L、5Lin hashsetafter.removeAllbefore,如果您能够正确比较对象,则可以重写.equals方法@DivyeshPatel如何从after列表中删除公共元素?HASHSET只允许唯一的条目,所以它只存储唯一的条目data@DivyeshPatel我想删除常用元素。@ShikhaRatra检查我的应答我的ArrayList不是同一类型
HashSet hs = new HashSet();
hs.addAll(before);
hs.addAll(after);
after.clear();
after.addAll(hs);
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);