В этой статье мы покажем, как объединить элементы двух List между собой двумя способами:

  • С помощью стандартного метода List.addAll
  • С помощью метода ListUtils.union из библиотеки Apache Commons

Способ 1: Объединение двух списков с помощью List.addAll

Воспользуемся стандартным методом addAll в интерфейсе List. Объявим два списка, добавим в них элементы, затем объединим списки:

List<String> list1 = new ArrayList<>();
list1.add("A");
list1.add("B");
list1.add("C");

List<String> list2 = new ArrayList<>();
list2.add("D");
list2.add("E");
list2.add("F");

list1.addAll(list2);

System.out.println(list1); // [A, B, C, D, E, F]

При вызове list1.addAll(list2) в list1 все добавятся элементы из списка list2.

Способ 2: Объединение двух списков с помощью ListUtils.union

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

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-collections4</artifactId>
    <version>4.4</version>
</dependency>

Снова создадим два списка, добавим в них элементы и затем воспользуемся методом ListUtils.union(list1, list2) для объединения двух списков:

List<String> list1 = new ArrayList<>();
list1.add("A");
list1.add("B");
list1.add("C");

List<String> list2 = new ArrayList<>();
list2.add("D");
list2.add("E");
list2.add("F");

List<String> list3 = ListUtils.union(list1, list2);

System.out.println(list3); // [A, B, C, D, E, F]

Заметьте, что List.Utils.union не изменяет содержимое списков, а создаёт новый список, объединяющий элементы двух других.

Исходный код

import java.util.ArrayList;
import java.util.List;

public class JoinTwoLists1 {
    public static void main(String[] args) {
        List<String> list1 = new ArrayList<>();
        list1.add("A");
        list1.add("B");
        list1.add("C");

        List<String> list2 = new ArrayList<>();
        list2.add("D");
        list2.add("E");
        list2.add("F");

        list1.addAll(list2); // [A, B, C, D, E, F]

        System.out.println(list1);
    }
}
import org.apache.commons.collections4.ListUtils;

import java.util.ArrayList;
import java.util.List;

public class JoinTwoLists2 {
    public static void main(String[] args) {
        List<String> list1 = new ArrayList<>();
        list1.add("A");
        list1.add("B");
        list1.add("C");

        List<String> list2 = new ArrayList<>();
        list2.add("D");
        list2.add("E");
        list2.add("F");

        List<String> list3 = ListUtils.union(list1, list2);

        System.out.println(list3); // [A, B, C, D, E, F]
    }
}

Заключение

Из этой статьи вы узнали, как объединить элементы двух списков. Первый способ это использовать стандартный метод List.addAll, второй способ – использовать ListUtils.union из библиотеки Commons Collections.

Как объединить элементы двух списков между собой