Объединение двух списков в Java — методы addAll и Stream.concat
Чтобы понять этот пример, нужно знать следующие темы:
Список (List) в Java
ArrayList в Java
Метод ArrayList addAll()
Пример 1: Объединение двух списков через addAll()
import java.util.ArrayList;
import java.util.List;
public class JoinLists {
public static void main(String[] args) {
List<String> list1 = new ArrayList<String>();
list1.add("a");
List<String> list2 = new ArrayList<String>();
list2.add("b");
List<String> joined = new ArrayList<String>();
joined.addAll(list1);
joined.addAll(list2);
System.out.println("list1: " + list1);
System.out.println("list2: " + list2);
System.out.println("joined: " + joined);
}
}
Вывод:
list1: [a]
list2: [b]
joined: [a, b]
В программе выше мы использовали метод addAll() интерфейса List, чтобы присоединить списки list1 и list2 к списку joined.
Пример 2: Объединение двух списков через union()
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.collections.ListUtils;
public class JoinLists {
public static void main(String[] args) {
List<String> list1 = new ArrayList<String>();
list1.add("a");
List<String> list2 = new ArrayList<String>();
list2.add("b");
List<String> joined = ListUtils.union(list1, list2);
System.out.println("list1: " + list1);
System.out.println("list2: " + list2);
System.out.println("joined: " + joined);
}
}
Вывод этой программы такой же, как в Примере 1.
В программе выше мы использовали метод union(), чтобы объединить заданные списки в joined.
Пример 3: Объединение двух списков через stream
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class JoinLists {
public static void main(String[] args) {
List<String> list1 = new ArrayList<String>();
list1.add("a");
List<String> list2 = new ArrayList<String>();
list2.add("b");
List<String> joined = Stream.concat(list1.stream(), list2.stream())
.collect(Collectors.toList());
System.out.println("list1: " + list1);
System.out.println("list2: " + list2);
System.out.println("joined: " + joined);
}
}
Вывод этой программы такой же, как в Примере 1.
В программе выше мы использовали метод concat() класса Stream, чтобы объединить два списка, преобразованных в потоки. Затем мы преобразуем их обратно в List с помощью метода toList().