Home >Java >javaTutorial >How to Efficiently Convert an ArrayList of Integers to a Primitive int Array in Java?
Converting ArrayList of Integers to Primitive int Array
In Java, there are multiple approaches to convert an ArrayList containing Integer objects to a primitive int[] array.
One method, as attempted in the code snippet provided, is to use the toArray() method. However, this will throw a compile-time error because of incompatible array types. To resolve this, specify the type of array to be returned, as shown below:
int[] n = (int[])x.toArray(new int[x.size()]);
An alternative approach, particularly useful with Java 8, is to leverage the Stream API:
int[] arr = list.stream().mapToInt(i -> i).toArray();
This method converts each element in the list to its corresponding int value, yielding the desired array.
You can also use the intValue method to explicitly convert each Integer object:
int[] arr = list.stream().mapToInt(Integer::intValue).toArray();
To handle potential null references, add a filter to the stream pipeline:
int[] arr = list.stream().filter(Objects::nonNull).mapToInt(i -> i).toArray();
With these techniques, you can efficiently convert an ArrayList of Integers to a primitive int array in Java.
The above is the detailed content of How to Efficiently Convert an ArrayList of Integers to a Primitive int Array in Java?. For more information, please follow other related articles on the PHP Chinese website!