## 雷雷
业精于勤,荒于嬉;行成于思,毁于随。
asList 是個泛型,可變參數的函數,所以傳入數組的時候,這個數組如果是基本類型數據,會被當作一個對象處理,題中就是 int[]。如果資料定義成 Integer[] 的,在 asList 的時候會被當作多個可變參數展開。
asList
int[]
Integer[]
另一個問題在於,就算是 Integer[],它轉換之後與 ArrayList 也存在泛型類型不匹配的問題。在 Java8 中用 stream 可以很方便的轉換過來,之前的 Java 版可以用循環,這裡給你一個 Stack Overflow 上的答案
ArrayList
// 声明数组 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不能自動轉ArrayList
建議統一資料型, 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
也存在泛型類型不匹配的問題。在 Java8 中用 stream 可以很方便的轉換過來,之前的 Java 版可以用循環,這裡給你一個 Stack Overflow 上的答案List不能自動轉ArrayList
建議統一資料型, int[] arr = { 1, 10, 8 };換成 String[] arr = { "1", "10", "8" };