Как преобразовать int[] в List<Целое число> в Java?
Как мне преобразовать int[] в List<Integer> в Java?
Конечно, меня интересует любой другой ответ, кроме выполнения этого в цикле, элемент за элементом. Но если другого ответа нет, я выберу этот, как лучший, чтобы показать тот факт, что эта функциональность не является частью Java.
Переведено автоматически
Ответ 1
Стримы
В Java 8+ вы можете создать поток из вашего int массива. Вызовите либо Arrays.stream, либо IntStream.of.
Вызовите IntStream#boxed, чтобы использовать преобразование boxing из int примитива в Integer объекты.
Собрать в список с помощью Stream.collect( Collectors.toList() ). Или проще в Java 16+, вызовите Stream#toList().
Пример:
int[] ints = {1,2,3}; List<Integer> list = Arrays.stream(ints).boxed().collect(Collectors.toList());
В Java 16 и более поздних версиях:
List<Integer> list = Arrays.stream(ints).boxed().toList();
Ответ 2
Нет ярлыка для преобразования из int[] в List<Integer>, поскольку Arrays.asList не имеет дело с боксом и просто создаст List<int[]> который не является тем, что вы хотите. Вам нужно создать служебный метод.
int[] ints = {1, 2, 3}; List<Integer> intList = newArrayList<Integer>(ints.length); for (int i : ints) { intList.add(i); }
Ответ 3
Также из библиотек guava ... com.google.common.primitives.Целые числа:
List<Integer> Ints.asList(int...)
Ответ 4
Arrays.asList не будет работать, как ожидают некоторые другие ответы.
Этот код не создаст список из 10 целых чисел. Он выведет 1, а не 10: