ArrayList和Array之間的轉換


  1. ArrayListArray

    (1):使用ArrayListtoArray方法。

        1)當ArrayList中存放的是引用類型時(例如String),成功

        /**

         * 使用了ArrayListtoArray方法 ,ArrayList里存放的是String(引用類型)

         */

        @Test

        public void list2Array1() {

            ArrayList<String> arrayList = new ArrayList<String>();

            arrayList.add("1");

            arrayList.add("2");

            arrayList.add("3");

     

            Object[] array = arrayList.toArray(new String[3]);

     

            for (Object o : array) {

                System.out.println(o);

            }

        }

    輸出為:

    [1, 2, 3]

     

        2) ArrayList中存放的是基本數據類型時(例如int),成功

    /**

         * 使用了ArrayListtoArray方法 , ArrayList里存放的是int(基本數據類型)

         */

        @Test

        public void list2Array2() {

            ArrayList<Integer> arrayList = new ArrayList<Integer>();

            arrayList.add(1);

            arrayList.add(2);

            arrayList.add(3);

     

            Object[] array = arrayList.toArray();

     

            System.out.println(Arrays.toString(array));

        }

    輸出為:

    [1, 2, 3]

  2. ArrayArrayList

    (1):使用ArraysasList方法。

    1)當Array中存放的是引用類型時(例如String),成功

    /**

    * 使用ArraysasList方法,Array中存放的String(引用類型)

    */

    @Test

    public void array2List1() {

        String[] stringArray = new String[] { "1", "2", "3" };

        List<String> list = Arrays.asList(stringArray);

     

        System.out.println(list);

    }

    輸出為:

    [1, 2, 3]

     

        2) Array中存放的是基本數據類型時(例如int),不成功

    /**

         * 使用ArraysasList方法,Array中存放int(基本類型)

         */

        @Test

        public void array2List2() {

            int[] intArray = new int[] { 1, 2, 3 };

            List<int[]> intList = Arrays.asList(intArray);

     

            System.out.println(intList.size());

            for (int[] is : intList) {

                System.out.println(Arrays.toString(is));

            }

        }

    輸出為:

    [[I@14514713]

    List的長度為 : 1

    [1, 2, 3]

     

        這個問題解決的方法就是將int[]換成Integer[],這樣內容就成了對象數組(即引用類型)。

    /**

         * 使用ArraysasList方法,Array中存放int(基本類型)

         */

        @Test

        public void array2List3() {

            Integer[] integerArray = { 1, 2, 3 };

            List<Integer> intList = Arrays.asList(integerArray);

     

            System.out.println(intList);

            System.out.println("List的長度為 : " + intList.size());

            for (Integer is : intList) {

                System.out.println(is);

            }

        }

    輸出為:

    [1, 2, 3]

    List的長度為 : 3

    1

    2

    3

     

     

    參考文獻:

    java中數組與List相互轉換的方法

    基本數據類型數組轉換列表顯的有些力不從心


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM