Я хочу объединить 3 arraylist в один из java. Кто-нибудь знает, что это лучший способ сделать такую вещь?
Объедините 3 arraylist к одному
Ответ 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>