集合:Arrays.asList() 和 new ArraysList()

 

 Arrays.asListnew ArrayList 在 Java 中都与集合有关,但是它们之间有一些重要的区别。

概述

 1) Arrays.asList():T... 是一个可变参数(varargs),接收任意参数后,会组合为一个数组。

 

        Arrays.asList("字符串列表.");    // 字符串列表
        Arrays.asList(2024);    // 整数列表

        int[] array = {1,2,3,4,5};
        Arrays.asList("多元素列表", array);  // 可放多个元素

 

  2) new ArrayList():在创建对象存储类型可为包装类、类、接口、数组。

复制代码
        ArrayList<Integer> integerList = new ArrayList<>(); // 存储整数对象
        ArrayList<Double> doubleList = new ArrayList<>(); // 存储双精度浮点数对象

        ArrayList<String> stringList = new ArrayList<>(); // 存储字符串对象
        ArrayList<Person> personList = new ArrayList<>(); // 存储自定义类对象

        ArrayList<List<Integer>> nestedList = new ArrayList<>(); // 存储整数列表对象的列表
        ArrayList<Map<String, Integer>> mapList = new ArrayList<>(); // 存储映射对象的列表

        ArrayList<int[]> intArrayList = new ArrayList<>(); // 存储整型数组对象
        ArrayList<String[]> stringArrayList = new ArrayList<>(); // 存储字符串数组对象

        ArrayList<String> list = new ArrayList<>(); //
        list.add("添加"); // 添加元素
        list.remove(0);  // 移除元素
复制代码

 

异同

 类型:

  Arrays.asList 返回的是一个由指定数组支持的固定大小的列表。这意味着不能向该列表添加或删除元素,但是可以修改已有的元素。

  new ArrayList 创建的是一个可变大小的列表,可以根据需要添加或删除元素。

 

 底层数据结构:

  Arrays.asList 返回的列表是基于原始数组的,没有进行额外的内存分配。这意味着,对 Arrays.asList 返回的列表进行操作,将直接影响到原始数组。

  new ArrayList 创建的是一个基于动态数组的列表,它会根据需要自动调整大小,不会影响到原始数组。

 

 可变性:

  Arrays.asList 返回的列表是不可变的(固定大小的),不能直接增加或删除元素。

  new ArrayList 创建的列表是可变的,可以通过添加、删除元素来改变列表的大小和内容。

 

 

  总结:

   如果需要一个不可变的、固定大小的列表,并且已有一个数组作为支持,那么 Arrays.asList 是一个不错的选择。如果需要一个可变的、动态大小的列表,或者希望不受原始数组的影响,那么应该使用 new ArrayList

 

posted @   学Java的`Bei  阅读(459)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示