搜尋

首頁  >  問答  >  主體

java - 關於將Array轉換成ArrayList的警告

## 雷雷

迷茫迷茫2747 天前794

全部回覆(2)我來回復

  • 巴扎黑

    巴扎黑2017-06-12 09:27:17

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

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

    回覆
    0
  • 世界只因有你

    世界只因有你2017-06-12 09:27:17

        // 声明数组
            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));

    回覆
    0
  • 取消回覆