Вопрос-ответ

How to convert int[] into List in Java?

Как преобразовать int[] в List<Целое число> в Java?

Как мне преобразовать int[] в List<Integer> в Java?

Конечно, меня интересует любой другой ответ, кроме выполнения этого в цикле, элемент за элементом. Но если другого ответа нет, я выберу этот, как лучший, чтобы показать тот факт, что эта функциональность не является частью Java.

Переведено автоматически
Ответ 1

Стримы


  1. В Java 8+ вы можете создать поток из вашего int массива. Вызовите либо Arrays.stream, либо IntStream.of.

  2. Вызовите IntStream#boxed, чтобы использовать преобразование boxing из int примитива в Integer объекты.

  3. Собрать в список с помощью 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 = new ArrayList<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:

int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
List lst = Arrays.asList(arr);
System.out.println(lst.size());

Это создаст список целых чисел:

List<Integer> lst = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);

Если у вас уже есть массив целых чисел, быстрого способа преобразования нет, вам лучше воспользоваться циклом.

С другой стороны, если в вашем массиве есть объекты, а не примитивы, Arrays.asList будет работать:

String str[] = { "Homer", "Marge", "Bart", "Lisa", "Maggie" };
List<String> lst = Arrays.asList(str);
java arrays collections