Arrays.asList()
是 Java 中一个非常有用的方法,它将数组转换成一个 固定大小的列表。这个方法位于 java.util.Arrays
类中,返回一个 List
,它可以像普通的 List
一样进行操作,但注意它的大小是固定的。
方法签名:
public static <T> List<T> asList(T... a)
参数:
-
T... a
:可变参数,代表任意类型的元素,可以是任何类型的数组(如:String[]
、Integer[]
等)。
返回值:
- 返回一个
List
,其中包含了传入数组中的元素。这个List
是由原始数组支持的,因此对List
元素的修改也会直接影响到原始数组,但不能调整List
的大小(即不能进行添加或删除操作)。
例子 1: 将数组转换为 List
import java.util.*;
public class Main {
public static void main(String[] args) {
// 创建一个字符串数组
String[] fruits = {"Apple", "Banana", "Cherry"};
// 使用 Arrays.asList() 将数组转换为列表
List<String> fruitList = Arrays.asList(fruits);
// 打印转换后的列表
System.out.println(fruitList); // 输出: [Apple, Banana, Cherry]
}
}
解释:
-
Arrays.asList(fruits)
将字符串数组fruits
转换成了一个List
。这个List
包含了数组中的所有元素。
例子 2: 使用 Arrays.asList()
转换不同类型的数组
import java.util.*;
public class Main {
public static void main(String[] args) {
// 整数数组
Integer[] numbers = {1, 2, 3, 4, 5};
// 将数组转换为 List
List<Integer> numberList = Arrays.asList(numbers);
System.out.println(numberList); // 输出: [1, 2, 3, 4, 5]
}
}
解释:
- 对于任意类型的数组(如
Integer[]
),Arrays.asList()
会将其转换为一个包含这些元素的List
。
例子 3: 修改 List 元素反映到原始数组
import java.util.*;
public class Main {
public static void main(String[] args) {
// 创建一个整数数组
Integer[] numbers = {10, 20, 30};
// 将数组转换为列表
List<Integer> numberList = Arrays.asList(numbers);
// 修改列表中的元素
numberList.set(1, 100);
// 打印列表和数组
System.out.println("List: " + numberList); // 输出: List: [10, 100, 30]
System.out.println("Array: " + Arrays.toString(numbers)); // 输出: Array: [10, 100, 30]
}
}
解释:
- 因为
Arrays.asList()
返回的List
依赖于原始数组,所以对List
的修改会直接影响到原始数组。在上面的例子中,我们修改了List
中索引为 1 的元素,也同时修改了数组中的相应元素。
例子 4: 不能添加或删除元素
import java.util.*;
public class Main {
public static void main(String[] args) {
// 创建一个字符串数组
String[] colors = {"Red", "Green", "Blue"};
// 将数组转换为列表
List<String> colorList = Arrays.asList(colors);
// 尝试向列表中添加元素
// colorList.add("Yellow"); // 这会抛出 UnsupportedOperationException
// 输出列表
System.out.println(colorList); // 输出: [Red, Green, Blue]
}
}
解释:
-
固定大小的列表:虽然
Arrays.asList()
返回的List
可以访问和修改元素,但是它的大小是固定的,无法进行add()
或remove()
操作。如果尝试添加或删除元素,将抛出UnsupportedOperationException
。
总结:
-
Arrays.asList()
是一个很有用的方法,用于将数组转换为List
。 - 转换后的
List
具有 固定大小,不能进行元素的添加或删除。 - 它提供了 直接访问数组元素 的能力,修改
List
中的元素会影响到原始数组。 - 适用于需要将数组转换为
List
并在不改变大小的情况下访问或修改元素的场景。