В этой статье мы покажем, как объединить элементы двух 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.