Java Arrrays.asList 问题
Java Arrrays.asList issue
我尝试在字符数组上使用 Arrays.asList() 方法,如下所示,
char[] array = "programming".toCharArray();
for (Character li : Arrays.asList(array)) {
System.out.println(li);
}
但是出现编译时错误。
这里 Array.asList 向我返回一个字符数组数组,如下所示
for (char[] li : Arrays.asList(array)) {
System.out.println(li);
}
我所知道的是,Arrays.asList() 方法将数组的每个元素转换为 List 中的一个元素。
但是这里发生了什么?
任何人都可以帮助我理解这一点吗?
Arrays.asList()
将每个引用类型元素转换为列表中的一个元素。因此,如果您传递一个基元数组,您将得到一个列表,其中包含一个元素,其类型是您传递给它的数组的类型。
如果您传递 Character[]
数组而不是 char[]
数组,您将得到一个 List<Character>
包含输入数组的所有元素作为单独的元素。
Arrays.asList 的签名是 - public static <T> List<T> asList(T... a)
。由于泛型类型参数必须是引用类型,因此传递原始数组被视为传递单个元素(其类型为数组类型),这将导致列表具有单个数组元素。
我尝试在字符数组上使用 Arrays.asList() 方法,如下所示,
char[] array = "programming".toCharArray();
for (Character li : Arrays.asList(array)) {
System.out.println(li);
}
但是出现编译时错误。 这里 Array.asList 向我返回一个字符数组数组,如下所示
for (char[] li : Arrays.asList(array)) {
System.out.println(li);
}
我所知道的是,Arrays.asList() 方法将数组的每个元素转换为 List 中的一个元素。 但是这里发生了什么? 任何人都可以帮助我理解这一点吗?
Arrays.asList()
将每个引用类型元素转换为列表中的一个元素。因此,如果您传递一个基元数组,您将得到一个列表,其中包含一个元素,其类型是您传递给它的数组的类型。
如果您传递 Character[]
数组而不是 char[]
数组,您将得到一个 List<Character>
包含输入数组的所有元素作为单独的元素。
Arrays.asList 的签名是 - public static <T> List<T> asList(T... a)
。由于泛型类型参数必须是引用类型,因此传递原始数组被视为传递单个元素(其类型为数组类型),这将导致列表具有单个数组元素。