Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг Управление проектами
7 профессий по цене одной
07:05:47:06
дн. ч. мин. сек.
10 Июл 2023
2 мин
591

Конвертация ArrayList с Integer в примитивный int массив в Java

Встречается ситуация, когда необходимо преобразовать ArrayList, содержащий Integer объекты, в примитивный int массив. Например, есть задача перевести данные

Встречается ситуация, когда необходимо преобразовать ArrayList, содержащий Integer объекты, в примитивный int массив. Например, есть задача перевести данные из списка в массив для использования в определенной функции или методе, которые работают с примитивными типами.

List<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);
int[] array = (int[])list.toArray();

Попытка выполнить этот код вызовет ошибку компиляции. Это происходит потому, что метод toArray() возвращает массив объектов (Object[]), а не примитивных типов. Поэтому приведение к примитивному типу вызывает ошибку.

Вместо этого можно использовать потоки (streams) из Java 8. С их помощью можно перевести данные из списка в массив примитивных типов.

List<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);
int[] array = list.stream().mapToInt(i->i).toArray();

В этом случае поток элементов списка (stream) преобразуется в поток примитивных типов (mapToInt(i->i)), который затем переводится в массив (toArray()).

Также есть способ выполнить это преобразование с помощью цикла:

List<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);
int[] array = new int[list.size()];
for (int i = 0; i < list.size(); i++) {
    array[i] = list.get(i);
}

В этом случае создается массив примитивных типов, размер которого равен размеру списка. Затем в цикле каждый элемент списка копируется в массив.

Таким образом, преобразование ArrayList с Integer в примитивный int массив в Java возможно и может быть выполнено несколькими способами.

Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей

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