Как один список пополнить недостающими элементами другого?
Есть первый список, который на выходе выдаёт [26]
Есть второй [26, 26, 25, 25, 70, 70]
Как мне их соединить, что бы на выходе получить первый список таким [26, 25, 70]?
Если первый будет выглядeть так [26, 58, 1]
А второй [26, 26, 87, 87, 9, 9, 58, 58, 99, 99, 1, 1]
То на выходе должно быть [26, 87, 9, 58, 99, 1]
Это, конечно же, не работает:
List<Long> result = new ArrayList<>();
for (Long a : list1){
for (Long b : list2){
if (!a.equals(b)){
result.add(a);
}
}
}
Получаю так:
первый [26]
второй [70, 25, 26, 70, 25, 26]
result [70, 25, 70, 25]
А хотелось бы [70, 25, 26]
И порядок в последнем, я думаю не обязателен, ибо это id для поиска по базе. Если можно с соблюдением порядка, тоже гуд.
Ответы (1 шт):
Автор решения: Vadik
→ Ссылка
Используйте для этой цели Set:
List<Long> list1 = ... // [26, 58, 1]
List<Long> list2 = ... // [26, 26, 87, 87, 9, 9, 58, 58, 99, 99, 1, 1]
Set<Long> result = new HashSet<>();
result.addAll(list1);
result.addAll(list2);
System.out.println(result); // => [26, 87, 9, 58, 99, 1]