Java中ArrayList初始化并添加多个元素有多种方式:Arrays.asList()适合固定元素且不修改的场景,需包装为ArrayList;List.of()返回不可变List;addAll()适合从数组或其他集合批量添加;双大括号初始化慎用;Java10+可用var简化声明。

Java 中 ArrayList 初始化并添加多个元素有多种简洁方式,关键看是否需要后续修改、是否追求代码可读性或性能。
直接使用 Arrays.asList() 初始化
适合创建后不修改、元素数量固定且类型明确的场景。它返回的是 Arrays 的内部 List 实现(非 ArrayList),若需真正 ArrayList,需再包装一层:
List<String> list = new ArrayList<>(Arrays.asList("a", "b", "c"));
// 或 Java 9+ 更简洁写法(返回不可变 List,不能 add):
List<String> immutable = List.of("a", "b", "c");
先 new ArrayList,再用 addAll() 批量添加
适合已有数组或另一个集合,想复制到新 ArrayList 中:
- 从数组转:先用 Arrays.asList() 转为 List,再传给 addAll()
- 从其他集合转:直接传入即可
ArrayList<Integer> list = new ArrayList<>();
list.addAll(Arrays.asList(1, 2, 3, 4));
// 或从另一个集合
List<String> source = Arrays.asList("x", "y");
list.addAll(source);
使用匿名内部类(双大括号初始化)——慎用
语法简洁但有潜在问题:每次创建都会生成一个匿名子类,可能引发内存泄漏或序列化异常,仅限临时测试或非常简单的场景:
立即学习“Java免费学习笔记(深入)”;
ArrayList<String> list = new ArrayList<>() {{
add("hello");
add("world");
add("!");
}};
Java 10+ 可用 var 简化声明(配合构造器或工厂方法)
提升可读性,不改变底层逻辑:
var list = new ArrayList<String>(Arrays.asList("one", "two", "three"));
// 或结合 Collections.addAll(需先创建空 ArrayList)
var list2 = new ArrayList<String>();
Collections.addAll(list2, "a", "b", "c");


















