Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг Управление проектами
01 Ноя 2023
2 мин
255

Преобразование List в int[] в Java

В работе с Java программисты часто сталкиваются с задачей преобразования списка целых чисел (List) в массив целых чисел (int[]). Например, имеется список чисел

В работе с Java программисты часто сталкиваются с задачей преобразования списка целых чисел (List) в массив целых чисел (int[]). Например, имеется список чисел и требуется преобразовать его в массив для последующего использования в коде.

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);

Однако при попытке использовать встроенный метод toArray() встречается проблема — этот метод возвращает массив объектов (Object[]), который нельзя привести к типу Integer[] или int[].

Object[] array = numbers.toArray(); // Возвращает Object[], а не int[]

Наиболее простым и очевидным решением этой задачи является использование цикла для преобразования списка в массив. Ниже представлен пример такого метода:

int[] toIntArray(List<Integer> list) {
  int[] ret = new int[list.size()];
  for(int i = 0; i < ret.length; i++)
    ret[i] = list.get(i);
  return ret;
}

Однако, в Java 8 и более поздних версиях, есть более элегантный и компактный способ преобразования списка в массив, используя стримы:

int[] array = numbers.stream().mapToInt(i->i).toArray();

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

Таким образом, преобразование List<Integer> в int[] в Java может быть выполнено различными способами, в зависимости от используемой версии Java и предпочтительного стиля программирования.

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

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