Arrays.asList()数组转集合的坑-创新互联

1、错误用法:
int arr [] = {1,2,3};
List 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 ints = Arrays.asList(arr);
        // System.out.println(ints.size());// 1
                // 使用Spring框架
        List list1 = CollectionUtils.arrayToList(arr);
        System.out.println(list1.size());// 3

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

                // 使用Collections工具类
        List 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 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

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前名称:Arrays.asList()数组转集合的坑-创新互联
分享URL:http://scyanting.com/article/dghscd.html