How to convert int[] into List<Integer> in Java?
Streams
- In Java 8+ you can make a stream of your
int
array. Call eitherArrays.stream
orIntStream.of
. - Call
IntStream#boxed
to use boxing conversion fromint
primitive toInteger
objects. - Collect into a list using
Stream.collect( Collectors.toList() )
. Or more simply in Java 16+, callStream#toList()
.
Example:
int[] ints = {1,2,3};
List<Integer> list = Arrays.stream(ints).boxed().collect(Collectors.toList());
In Java 16 and later:
List<Integer> list = Arrays.stream(ints).boxed().toList();
There is no shortcut for converting from int[]
to List<Integer>
as Arrays.asList
does not deal with boxing and will just create a List<int[]>
which is not what you want. You have to make a utility method.
int[] ints = {1, 2, 3};
List<Integer> intList = new ArrayList<Integer>(ints.length);
for (int i : ints)
{
intList.add(i);
}
Also from guava libraries... com.google.common.primitives.Ints:
List<Integer> Ints.asList(int...)