Senior
33
Задача: даны два списка, вывести элементы первого, которых нет во втором. Напишите решение на Java.
Сұралған компаниялар
AI-дан жауап
sobes.tech AI
Для решения задачи можно использовать коллекцию HashSet для быстрого поиска элементов второго списка и затем фильтровать первый список. Вот пример на Java:
import java.util.*;
public class ListDifference {
public static <T> List<T> difference(List<T> list1, List<T> list2) {
Set<T> set2 = new HashSet<>(list2);
List<T> result = new ArrayList<>();
for (T item : list1) {
if (!set2.contains(item)) {
result.add(item);
}
}
return result;
}
public static void main(String[] args) {
List<Integer> list1 = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> list2 = Arrays.asList(3, 4, 6);
List<Integer> diff = difference(list1, list2);
System.out.println(diff); // Выведет [1, 2, 5]
}
}
Такой подход эффективен по времени, так как поиск во множестве происходит за O(1) в среднем.