Arrays.asList()數組轉集合的坑

1、錯誤用法:

int arr [] = {1,2,3};
List<int[]> ints = Arrays.asList(arr);
System.out.println(ints.size());// 1

通過Arrays.asList方法轉換的List並不是真正的java.util.ArrayList!!!返回的是java.util.Arrays.ArrayList!!!

2、不同之處

Arrays.ArrayList 是工具類 Arrays 的一個內部靜態類,它沒有完全實現List的方法,而 ArrayList直接實現了List 接口,實現了List所有方法。
Arrays.asList()數組轉集合的坑
即使用Arrays.asList()轉換後的集合不能進行增刪操作

3、正確的使用

              int arr [] = {1,2,3};
        // List<int[]> ints = Arrays.asList(arr);
        // System.out.println(ints.size());// 1
                // 使用Spring框架
        List list1 = CollectionUtils.arrayToList(arr);
        System.out.println(list1.size());// 3

        List<Integer> integerList = Arrays.asList(1, 2, 3, 4);
        System.out.println(integerList.size());// 4
        System.out.println("=========");

                // 使用Collections工具類
        List<String> list = new ArrayList<>();
        Collections.addAll(list, "dog", "cat", "pig");
        list.forEach(s -> {
            System.out.println(s);
        });
        System.out.println("=========");

                // 使用JDK1.8Lambda表達式
        int intArray [] = {1,2,3};
        List<Integer> collect = Arrays.stream(intArray).boxed().collect(Collectors.toList());
        collect.forEach(integer -> {
            System.out.println(integer);
        });
        System.out.println("=========");

參考:https://mp.weixin.qq.com/s/iDpx7krEjSue0-IXGiMFeQ

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章