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



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