74. Объединить массивы без дубликатов #
🔥 Объедини два списка целых чисел, исключив повторы.
public List<Integer> collect(List<Integer> lst1, List<Integer> lst2) {
// код тут
}
Спойлеры к решению
Подсказки
💡 Чтобы убрать дубликаты, используй
💡 Для сохранения порядка можно применить
💡 В Java 8+ удобно стримами:
💡 Если важна сортировка, лучше использовать
Set (например, HashSet).💡 Для сохранения порядка можно применить
LinkedHashSet.💡 В Java 8+ удобно стримами:
Stream.concat(...) и distinct().💡 Если важна сортировка, лучше использовать
TreeSet.Решение
Вариант с Set:
public List<Integer> collect(List<Integer> lst1, List<Integer> lst2) {
Set<Integer> set = new LinkedHashSet<>();
set.addAll(lst1);
set.addAll(lst2);
return new ArrayList<>(set);
}
Вариант на Stream API:
public List<Integer> collect(List<Integer> lst1, List<Integer> lst2) {
return Stream.concat(lst1.stream(), lst2.stream())
.distinct()
.collect(Collectors.toList());
}
LinkedHashSetсохраняет порядок первого появления.distinct()работает лениво и автоматически убирает дубли.Важно: оба решения не зависят от размера входных коллекций.