Введение
В Java ArrayList является реализацией интерфейса List в коллекционном фреймворке и используется для хранения данных. Объединение двух ArrayList фактически представляет собой процесс объединения элементов двух ArrayList в единый ArrayList. Это полезно, когда у нас есть несколько потоков данных и мы хотим собрать их в единый поток.
Создание ArrayList
Сначала создадим два ArrayList, которые мы хотим объединить. Вот пример создания двух ArrayList целых чисел:
import java.util.ArrayList;
import java.util.Arrays;
public class Main {
public static void main(String[] args){
ArrayList<Integer> arrList1 = new ArrayList<>();
arrList1.add(1030);
arrList1.add(1020);
arrList1.add(1010);
arrList1.add(1040);
System.out.println(arrList1);
ArrayList<Integer> arrList2 = new ArrayList<>(Arrays.asList(1050,1060,1070));
System.out.println(arrList2);
}
}
Для запуска этого кода введите следующую команду в терминале:
javac Main.java && java Main
В результате будут выведены следующие строки:
[1030, 1020, 1010, 1040]
[1050, 1060, 1070]
Объединение ArrayList с помощью addAll()
Для объединения двух ArrayList с использованием метода addAll() следуйте коду ниже:
import java.util.ArrayList;
import java.util.Arrays;
public class Main {
public static void main(String[] args){
ArrayList<Integer> arrList1 = new ArrayList<>();
arrList1.add(1030);
arrList1.add(1020);
arrList1.add(1010);
arrList1.add(1040);
System.out.println(arrList1);
ArrayList<Integer> arrList2 = new ArrayList<>(Arrays.asList(1050,1060,1070));
System.out.println(arrList2);
// Объединение двух ArrayList
arrList1.addAll(arrList2);
System.out.println("После объединения:");
System.out.println(arrList1);
}
}
Для запуска этого кода введите следующую команду в терминале:
javac Main.java && java Main
В результате будут выведены следующие строки:
[1030, 1020, 1010, 1040]
[1050, 1060, 1070]
После объединения:
[1030, 1020, 1010, 1040, 1050, 1060, 1070]
Объединение ArrayList с помощью flatMap()
Мы также можем объединить два ArrayList, используя метод flatMap() и метод distinct(), следуя коду ниже:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class Main {
public static void main(String[] args){
ArrayList<Integer> arrList1 = new ArrayList<>();
arrList1.add(1030);
arrList1.add(1020);
arrList1.add(1010);
arrList1.add(1040);
System.out.println(arrList1);
ArrayList<Integer> arrList2 = new ArrayList<>(Arrays.asList(1050,1030,1070));
System.out.println(arrList2);
// Объединение двух ArrayList
List<Integer> arrList3 = Stream.of(arrList1, arrList2)
.flatMap(Collection::stream)
.distinct()
.collect(Collectors.toList());
System.out.println("После объединения:");
System.out.println(arrList3);
}
}
Для запуска этого кода введите следующую команду в терминале:
javac Main.java && java Main
В результате будут выведены следующие строки:
[1030, 1020, 1010, 1040]
[1050, 1030, 1070]
После объединения:
[1030, 1020, 1010, 1040, 1050, 1070]
Полный код
Вот полный код для объединения двух ArrayList в Java:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class Main {
public static void main(String[] args){
ArrayList<Integer> arrList1 = new ArrayList<>();
arrList1.add(1030);
arrList1.add(1020);
arrList1.add(1010);
arrList1.add(1040);
System.out.println(arrList1);
ArrayList<Integer> arrList2 = new ArrayList<>(Arrays.asList(1050,1030,1070));
System.out.println(arrList2);
// Объединение двух ArrayList
List<Integer> arrList3 = Stream.of(arrList1, arrList2)
.flatMap(Collection::stream)
.distinct()
.collect(Collectors.toList());
System.out.println("После объединения:");
System.out.println(arrList3);
}
}
Запуск кода
Для запуска кода введите следующую команду в терминале:
javac Main.java && java Main
В результате будут выведены следующие строки:
[1030, 1020, 1010, 1040]
[1050, 1030, 1070]
После объединения:
[1030, 1020, 1010, 1040, 1050, 1070]
Резюме
В этом практическом занятии мы показали, как объединить два ArrayList в Java с использованием метода addAll() интерфейса List и метода flatMap() API стримов. Также мы дали пример объединения уникальных элементов из двух разных ArrayList. Надеемся, что это практическое занятие было полезным для вас!



