集合:Arrays.asList() 和 new ArraysList()
Arrays.asList
和 new 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
。
分类:
Java / Java基础
, Java
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)