业精于勤,荒于嬉;行成于思,毁于随。
asList 是个泛型,可变参数的函数,所以传入数组的时候,这个数组如果是基本类型数据,会被当作一个对象处理,题中就是 int[]。如果数据定义成 Integer[] 的,在 asList 的时候会被当作多个可变参数展开。
asList
int[]
Integer[]
另外一个问题在于,就算是 Integer[],它转换之后与 ArrayList<String> 也存在泛型类型不匹配的问题。在 Java8 中用 stream 可以很方便的转换过来,之前的 Java 版可以用循环,这里给你一个 Stack Overflow 上的答案
ArrayList<String>
// 声明数组 int[] arr = { 1, 10, 8 }; // 输出测试数组 System.out.println("测试的数组为:" + Arrays.toString(arr)); // 通过下角标访问元素,数组的下角标是从0开始的 System.out.println("通过数组的下角标访问元素,元素的下角标从0开始,下角标为0的元素是:" + arr[0]); // 将Array 转换成 Arraylist List<int[]> ss = Arrays.asList(arr); ArrayList<String> arrayList = new ArrayList<String>();
List<int[]>不能自动转ArrayList<String>
建议统一数据类型, int[] arr = { 1, 10, 8 };换成 String[] arr = { "1", "10", "8" };
// 声明数组 String[] arr = { "1", "10", "8" }; // 输出测试数组 System.out.println("测试的数组为:" + Arrays.toString(arr)); // 通过下角标访问元素,数组的下角标是从0开始的 System.out.println("通过数组的下角标访问元素,元素的下角标从0开始,下角标为0的元素是:" + arr[0]); // 将Array 转换成 Arraylist ArrayList<String> arrayList = new ArrayList<String>(Arrays.asList(arr));
asList
是个泛型,可变参数的函数,所以传入数组的时候,这个数组如果是基本类型数据,会被当作一个对象处理,题中就是int[]
。如果数据定义成Integer[]
的,在asList
的时候会被当作多个可变参数展开。另外一个问题在于,就算是
Integer[]
,它转换之后与ArrayList<String>
也存在泛型类型不匹配的问题。在 Java8 中用 stream 可以很方便的转换过来,之前的 Java 版可以用循环,这里给你一个 Stack Overflow 上的答案List<int[]>不能自动转ArrayList<String>
建议统一数据类型, int[] arr = { 1, 10, 8 };换成 String[] arr = { "1", "10", "8" };