Вы сейчас просматриваете Слияние и сортировка списков чисел

Слияние и сортировка списков чисел

Вот интересная задача на слияние двух ArrayList:


Задача: Слияние и сортировка списков чисел

Напишите программу, которая объединяет два списка целых чисел (ArrayList<Integer>), удаляет из объединенного списка дубликаты и сортирует его в порядке возрастания.

Требования:

  1. Считайте, что два исходных списка могут содержать дубликаты внутри себя и между собой.
  2. Итоговый список не должен содержать повторяющихся элементов.
  3. Итоговый список должен быть отсортирован по возрастанию.

Пример:

Вход:

  • list1 = [3, 5, 1, 9, 3]
  • list2 = [8, 2, 5, 3]

Выход:

  • mergedList = [1, 2, 3, 5, 8, 9]

Подсказка:

  1. Используйте метод addAll() для объединения списков.
  2. Преобразуйте объединенный список в Set, чтобы автоматически удалить дубликаты.
  3. Затем преобразуйте Set обратно в ArrayList и отсортируйте его с помощью Collections.sort() или ArrayList.sort().

Решение:

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

public class MergeLists {
    public static void main(String[] args) {
        ArrayList<Integer> list1 = new ArrayList<>(List.of(3, 5, 1, 9, 3));
        ArrayList<Integer> list2 = new ArrayList<>(List.of(8, 2, 5, 3));

        // Объединяем списки
        ArrayList<Integer> mergedList = new ArrayList<>(list1);
        mergedList.addAll(list2);

        // Удаляем дубликаты, преобразуя в Set
        Set<Integer> uniqueSet = new HashSet<>(mergedList);

        // Преобразуем обратно в ArrayList и сортируем
        mergedList = new ArrayList<>(uniqueSet);
        Collections.sort(mergedList);

        // Выводим результат
        System.out.println("Объединенный и отсортированный список без дубликатов: " + mergedList);
    }
}

Ожидаемый вывод:

Объединенный и отсортированный список без дубликатов: [1, 2, 3, 5, 8, 9]

Эта задача полезна для практики слияния списков, удаления дубликатов и сортировки.

Leonid Kleimann

I like Java!