Home >Java >javaTutorial >How Has Java's `Arrays.asList()` Method Changed Since Java SE 1.4.2, and How Can I Work Around It?
Converting Array to List in Java: Uncovering Post-1.4.2 Changes
While converting arrays to lists in Java, you might have encountered unexpected behavior due to changes in the Arrays.asList() method from Java SE 1.4.2 to 8. This article delves into these changes and provides a solution to ensure consistent list conversion across versions.
Pre-1.4.2 Behavior: Converting Arrays to Lists
Prior to Java SE 1.4.2, the Arrays.asList() method conveniently converted arrays into mutable lists. For instance, the following code snippet would create a list containing the elements 1, 2, 3:
int[] numbers = new int[] { 1, 2, 3 }; List<Integer> list = Arrays.asList(numbers);
Post-1.4.2 Behavior: Arrays Wrapped in Lists
From Java SE 1.5.0 onwards, the behavior of Arrays.asList() changed significantly. Instead of converting the array into a list of its elements, it now returns an unmodifiable wrapper list that contains a single element: the original array. This behavior was introduced to prevent modification of the list, which could potentially lead to unpredictable results.
As a result, the previous code snippet now behaves differently, returning a list that contains the array 'numbers':
int[] numbers = new int[] { 1, 2, 3 }; List<int[]> list = Arrays.asList(numbers); // Note: <> should be omitted
Workaround: Converting Arrays to Lists of Primitive Wrappers
To obtain a mutable list containing the individual elements of an array, you can convert the array to a list of the corresponding primitive wrapper class. For example, to create a list of Integer objects, you would use the following code:
Integer[] numbers = new Integer[] { 1, 2, 3 }; List<Integer> list = Arrays.asList(numbers);
This method ensures that the resulting list contains the primitive values rather than the array itself.
The above is the detailed content of How Has Java's `Arrays.asList()` Method Changed Since Java SE 1.4.2, and How Can I Work Around It?. For more information, please follow other related articles on the PHP Chinese website!