Как преобразовать массив в список
Перейти к содержимому

Как преобразовать массив в список

Как преобразовать 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> соответственно? Я понимаю, как это сделать через циклы, но мне интересно знать, есть ли методы специальные для этого? Можно ли обойтись без циклов? Прошу пример привести.

user avatar

user avatar

Как уже сказано в соседнием ответе, для ссылочных типов можно использовать метод Arrays.asList(array) .

Для примитивов же придётся использовать циклы или Stream API. Например, для int[] array можно написать так:

Для long[] и double[] использовать соответственно LongStream и DoubleStream .

А, например, для boolean[] в любом случае нужно будет обойти массив — как-то так:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *