Быстрая сортировка списков в Java с использованием коллекций.
Collections.sort(list1);
Collections.sort(list2);
Если вы сравниваете значения после сортировки:
for (Object1 o : list1) {
for (Object2 p : list2) {
if ((o.getSomeValue()).equals(p.getSomeValue())) list1.remove(o);
}
}
Сложность по времени будет mxn для этого.(где m - длина списка 1, а n - длина списка 2)
Если вас волнует сложность времени.Более быстрым способом было бы перебирать list2 и добавлять каждое значение в HashSet.Затем выполните отдельный цикл по list1 и сравните значения со значениями, которые мы имели в HashSet.По сути, это должно выглядеть так, но вы должны добиться прогресса с помощью своего кода.
HashSet<T> hSet = new HashSet<T>();
for (Object2 p : list2) {
if (!hSet.contains(p.getSomeValue())) {
hSet.add(p);
}
}
for (Object1 o : list1) {
if (hSet.contains(o.getSomeValue())) {
list1.remove(o);
}
}
Сложность по времени = m + n (где m - длина списка 1, а n - длина списка 2)