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");
</string></string>
先 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);
</string></integer>
使用匿名内部类(双大括号初始化)——慎用
语法简洁但有潜在问题:每次创建都会生成一个匿名子类,可能引发内存泄漏或序列化异常,仅限临时测试或非常简单的场景:
ArrayList<string> list = new ArrayList() {{
add("hello");
add("world");
add("!");
}};
</string>
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");
</string></string>
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











