java - 關於將Array轉換成ArrayList的警告
迷茫
迷茫 2017-06-12 09:25:17
0
2
805

## 雷雷

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回覆(2)
巴扎黑

asList 是個泛型,可變參數的函數,所以傳入數組的時候,這個數組如果是基本類型數據,會被當作一個對象處理,題中就是 int[]。如果資料定義成 Integer[] 的,在 asList 的時候會被當作多個可變參數展開。

另一個問題在於,就算是 Integer[],它轉換之後與 ArrayList 也存在泛型類型不匹配的問題。在 Java8 中用 stream 可以很方便的轉換過來,之前的 Java 版可以用循環,這裡給你一個 Stack Overflow 上的答案

世界只因有你
    // 声明数组
        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));
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板