如何合并两个没有重复的ArrayLists?

我有两个数组列表

ArrayList one = {A, B, C, D, E} ArrayList two = {B, D, F, G} 

我希望得到我的最终ArrayList,其中包含一个元素和仅两个元素而不是一个元素。

所以ArrayList final = {A,B,C,D,E,F,G}。

我怎样才能做到这一点?

 for (Object x : two){ if (!one.contains(x)) one.add(x); } 

假设您不想使用注释中建议的集合。 如果您正在寻找比这更漂亮的东西,请澄清您的问题。

或者:

 Set fooSet = new LinkedHashSet<>(one); fooSet.addAll(two); List finalFoo = new ArrayList<>(fooSet); 

要么

 List twoCopy = new ArrayList<>(two); twoCopy.removeAll(one); one.addAll(twoCopy); 

你可以这样做:

 ArrayList result = new ArrayList<>(); result.addAll(one); for(Object e: two){ if(!result.contains(e)) result.add(e); } 

尝试这种事情。 由于Set不允许重复,因此您只能添加更改

 ArrayList a=new ArrayList<>(); a.add("a"); a.add("b"); ArrayList b=new ArrayList<>(); a.add("a"); a.add("c"); Set s=new HashSet(); s.addAll(a); s.addAll(b); a=new ArrayList<>(s); for(String r:a){ System.out.println(r); }