Arrays.asList() Conundrum: Understanding Its Limitations
In Java, the Arrays.asList method provides a convenient way to convert an array into a list. However, when dealing with primitive arrays, such as float[], we encounter an anomaly.
This code snippet works as expected, creating a List of Integer objects:
List<Integer> list = Arrays.asList(1,2,3,4,5);
On the other hand, the following code fails to create a List
int[] ints = new int[] {1,2,3,4,5}; List<Integer> list = Arrays.asList(ints);
Instead, the output is a List
Arrays.asList accepts a varargs parameter, which is a syntactical shorthand for an array. However, in the case of primitives, it treats the entire array as a single element instead of each primitive value. This results in a List containing an array of primitives, rather than individual primitive values wrapped as objects.
Unfortunately, there is no straightforward way to convert an int[] to List
Autoboxing typically converts primitives into their corresponding wrapper objects for use in object collections. However, when applied to arrays of primitives, it does not occur element-wise. This limitation stems from the fact that array autoboxing is not supported in Java.
The above is the detailed content of Why Doesn't `Arrays.asList()` Autobox Primitive Arrays in Java?. For more information, please follow other related articles on the PHP Chinese website!