How to convert int[] to Integer[] in Java? How to convert int[] to Integer[] in Java? arrays arrays

How to convert int[] to Integer[] in Java?


Native Java 8 (one line)

With Java 8, int[] can be converted to Integer[] easily:

int[] data = {1,2,3,4,5,6,7,8,9,10};// To boxed arrayInteger[] what = Arrays.stream( data ).boxed().toArray( Integer[]::new );Integer[] ever = IntStream.of( data ).boxed().toArray( Integer[]::new );// To boxed listList<Integer> you  = Arrays.stream( data ).boxed().collect( Collectors.toList() );List<Integer> like = IntStream.of( data ).boxed().collect( Collectors.toList() );

As others stated, Integer[] is usually not a good map key.But as far as conversion goes, we now have a relatively clean and native code.


If you want to convert an int[] to an Integer[], there isn't an automated way to do it in the JDK. However, you can do something like this:

int[] oldArray;... // Here you would assign and fill oldArrayInteger[] newArray = new Integer[oldArray.length];int i = 0;for (int value : oldArray) {    newArray[i++] = Integer.valueOf(value);}

If you have access to the Apache lang library, then you can use the ArrayUtils.toObject(int[]) method like this:

Integer[] newArray = ArrayUtils.toObject(oldArray);


Convert int[] to Integer[]:

    import java.util.Arrays;    ...    int[] aint = {1,2,3,4,5,6,7,8,9,10};    Integer[] aInt = new Integer[aint.length];    Arrays.setAll(aInt, i -> aint[i]);