Подтвердить что ты не робот

Объедините 3 arraylist к одному

Я хочу объединить 3 arraylist в один из java. Кто-нибудь знает, что это лучший способ сделать такую ​​вещь?

4b9b3361

Ответ 1

Используйте ArrayList.addAll(). Что-то вроде этого должно работать (при условии, что списки содержат объекты String, вы должны соответственно изменить).

List<String> combined = new ArrayList<String>();
combined.addAll(firstArrayList);
combined.addAll(secondArrayList);
combined.addAll(thirdArrayList);

Update

Я вижу по вашим комментариям, что вы действительно можете попытаться создать 2D-список. Если это так, то должен работать следующий код:

List<List<String>> combined2d = new ArrayList<List<String>>();
combined2d.add(firstArrayList);
combined2d.add(secondArrayList);
combined2d.add(thirdArrayList);

Ответ 2

Как насчет использования java.util.Arrays.asList для упрощения слияния?

List<String> one = Arrays.asList("one","two","three");
List<String> two = Arrays.asList("four","five","six");
List<String> three = Arrays.asList("seven","eight","nine");

List<List<String>> merged = Arrays.asList(one, two, three);

Ответ 3

Использование потоков Java 8:

Список Список

List<List<String>> listOfList = Stream.of(list1, list2, list3).collect(Collectors.toList());

Список строк

List<String> list = Stream.of(list1, list2, list3).flatMap(Collection::stream).collect(Collectors.toList());

Использование Java 9 List.of статического метода factory (предупреждение: этот список является неизменным и запрещает null)

List<List<String>> = List.of​(list1, list2, list3);

Где list1, list2, list3 имеют тип List<String>