Как преобразовать List в Array и наоборот в Java
Допустим, у нас есть список, и надо его преобразовать в массив. Как это сделать? Возьмем для примера список строк:
Мы хотим преобразовать его в массив:
Сделаем это без сторонних библиотек средствами JDK. Начнем с 11 версии, дальше покажу способы на 8 версии, и потом метод с Generics.
Способ № 1 (JDK 11)
Итак, с 11 версии список в массив можно преобразовать вот так изящно:
Способ № 2 (JDK 8)
В 8 версии можно сделать так (внимание, в скобках параметром указываем тип массива, а иначе результирующий массив будет типа Object[]):
Заметьте, что в аргументе можно указать массив нулевой длины, главное, что есть тип. В этом случае будет создан и вернется новый массив нужной длины. Если же список помещается, то вернется тот, что в аргументе.
Способ № 3 с использованием stream() (JDK 8)
Метод для Generics
Допустим, надо написать общий метод для любого типа данных:
Проверим, что он работает. Создадим класс:
Преобразование Array в List
Теперь допустим у нас есть массив строк:
Массив в List преобразуется так:
Но полученный массив — фиксированного размера, в него нельзя добавлять и удалять элементы. Менять же элементы внутри можно, при этом изменения отразятся на массиве. И наоборот.
Чтобы получить обычный List, можно создать новый List на основе предыдущего:
Java преобразовать список в массив и наоборот
В этой статье мы быстро узнаем, как преобразовать список Java (скажем, ArrayList ) в массив и наоборот. Если вы хотите узнать больше о ArrayList в целом, не стесняйтесь читать нашу статью о Java ArrayList.
Преобразовать список Java в массив:
Преобразование списка Java в массив очень просто и понятно. Мы можем использовать один из двух доступных вариантов метода toArray () :
Давайте попробуем их:
Метод toArray (T [] array) принимает и возвращает массив. Основная цель передачи массива – сообщить тип массива, который должен быть возвращен:
- Если переданный массив имеет достаточно места, элементы сохраняются в одном массиве и возвращается ссылка на этот массив.
- Если в нем больше места, чем количество элементов, массив сначала заполняется элементами списка, а оставшиеся значения заполняются как ноль
- Или же, если у него недостаточно места для хранения элементов, создается, заполняется и возвращается новый массив того же типа и достаточного размера.
Преобразовать массив Java в список :
Чтобы преобразовать массив в список в Java, мы можем выбрать один из следующих подходов:
1. Наивный подход (итерация):
Один простой способ – перебрать все элементы массива и добавить их во вновь созданный список:
Java. Как конвертировать массив []String или []int в List<String> или List< Integer> соответственно?
Как конвертировать массив String[] или int[] в List<String> или List<Integer> соответственно? Я понимаю, как это сделать через циклы, но мне интересно знать, есть ли методы специальные для этого? Можно ли обойтись без циклов? Прошу пример привести.
![]()
![]()
Как уже сказано в соседнием ответе, для ссылочных типов можно использовать метод Arrays.asList(array) .
Для примитивов же придётся использовать циклы или Stream API. Например, для int[] array можно написать так:
Для long[] и double[] использовать соответственно LongStream и DoubleStream .
А, например, для boolean[] в любом случае нужно будет обойти массив — как-то так: