java中arraylist初始化常用两种方式:一是用arrays.aslist()配合构造方法一行完成(适合已知全部初始数据),二是先创建空列表再用add()逐个添加(适合动态数据);需注意泛型必须用包装类、避免漏写泛型、区分add()与set()。

Java 中 ArrayList 初始化并添加基础数据,最常用的是先创建实例,再用 add() 方法逐个或批量加入元素。关键在于类型声明要明确,避免原始类型误用,同时注意初始化时的容量设置是否必要。
直接声明并初始化(推荐初学者用)
使用 Arrays.asList() 配合构造方法,一行完成初始化和赋值:
ArrayList<string> list = new ArrayList(Arrays.asList("苹果", "香蕉", "橙子"));
ArrayList<integer> numbers = new ArrayList(Arrays.asList(1, 2, 3, 4));
</integer></string>
- 括号里的
是钻石运算符,自动推断泛型类型,Java 7+ 支持 -
Arrays.asList()返回的是固定大小的列表,必须套一层new ArrayList()才能后续增删 - 适合已知全部初始数据、且数量不大的场景
先创建空列表,再逐个添加
适用于数据来源动态(如循环读取、用户输入、条件判断后添加):
ArrayList<double> scores = new ArrayList(); scores.add(89.5); scores.add(92.0); scores.add(78.3); </double>
- 默认初始容量是 10,超出会自动扩容(约 1.5 倍),一般无需手动指定
- 如果确定要存大量数据(比如上万条),可预设容量避免多次扩容:
new ArrayList(10000) - 支持重复元素和
null(除非业务逻辑禁止)
用 for 循环或增强 for 添加批量数据
当需要按规律生成或处理数组/集合再转为 ArrayList 时很实用:
// 从普通数组转
String[] arr = {"a", "b", "c"};
ArrayList<string> list = new ArrayList(Arrays.asList(arr));
// 或用循环添加
ArrayList<integer> evens = new ArrayList();
for (int i = 0; i
</integer></string>
-
Arrays.asList()对基本类型数组(如int[])无效,会把整个数组当成一个元素,应改用包装类数组(Integer[])或手动循环 - 增强 for 不适合边遍历边修改列表,会抛
ConcurrentModificationException
常见错误提醒
避免踩这些典型坑:
-
别用基本类型做泛型:写成
ArrayList<int></int>会编译报错,必须用Integer、Double等包装类 -
别漏写泛型:虽然
ArrayList list = new ArrayList();能编译,但失去类型检查,容易运行时报ClassCastException -
别混淆
add()和set():set(index, e)是替换已有位置元素,索引越界会报异常;add(e)总是追加到末尾
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











