Ответ 1
for (Object x : two){
if (!one.contains(x))
one.add(x);
}
предполагая, что вы не хотите использовать набор, указанный в комментарии. Если вы ищете что-то более интересное, чем это, пожалуйста, уточните свой вопрос.
У меня есть два списка массивов
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<Foo> fooSet = new LinkedHashSet<>(one);
fooSet.addAll(two);
List<Foo> finalFoo = new ArrayList<>(fooSet);
или
List<Foo> twoCopy = new ArrayList<>(two);
twoCopy.removeAll(one);
one.addAll(twoCopy);
вы можете сделать что-то вроде этого:
ArrayList<Object> result = new ArrayList<>();
result.addAll(one);
for(Object e: two){
if(!result.contains(e))
result.add(e);
}
Попробуй такое. Поскольку Set
не позволяет дублировать, вы можете добавлять только изменения
ArrayList<String> a=new ArrayList<>();
a.add("a");
a.add("b");
ArrayList<String> b=new ArrayList<>();
a.add("a");
a.add("c");
Set<String> s=new HashSet<String>();
s.addAll(a);
s.addAll(b);
a=new ArrayList<>(s);
for(String r:a){
System.out.println(r);
}