Java中初始化一个List的多种方式

1.最原始的方式:先创建,然后再添加元素

java 复制代码
List<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");
list.add("cherry");

2.使用Arrays.asList

这是一种快速方便的方式,直接使用数组初始化列表。

java 复制代码
List<String> list = Arrays.asList("apple", "banana", "cherry");

注意:由Arrays.asList返回的列表是固定大小的(基于原始数组的视图),所以后续操作中不能添加或删除元素。如果需要一个可变的列表,可以再用其初始化一个新的ArrayList。

java 复制代码
List<String> list = new ArrayList<>(Arrays.asList("apple", "banana", "cherry"));

3.使用双括号初始化(匿名内部类)

这种方法利用了匿名内部类的初始化块。

java 复制代码
List<String> list = new ArrayList<String>() {{
    add("apple");
    add("banana");
    add("cherry");
}};

这种方式虽然写法简洁,但因为创建了匿名内部类,所以可能导致内存泄漏或隐藏的性能问题。

4.使用Collections.addAll

这种方法可以在创建列表后,将多个元素添加到列表中。

java 复制代码
List<String> list = new ArrayList<>();
Collections.addAll(list, "apple", "banana", "cherry");

5.使用Java 8的Stream

利用Stream的操作来生成列表。

java 复制代码
List<String> list = Stream.of("apple", "banana", "cherry")
                          .collect(Collectors.toList());

6.使用List.of(从Java 9开始)

这是Java 9引入的一个便利方法,可以快速创建不可变的列表。

java 复制代码
List<String> list = List.of("apple", "banana", "cherry");

通过List.of创建的列表是不可变的,试图修改它(如添加、删除元素)将抛出UnsupportedOperationException。

总结

这些方法各有特点,可以根据具体需求和Java版本选择适合的初始化方式。

相关推荐
郝亚军几秒前
manifest 中 `sha256` 与 `signValue` 的作用
java·开发语言·数据结构
譕痕15 分钟前
stripe 实例
java·开发语言·stripe·checksession
墨子夕23 分钟前
设计模式——Java × Python 双语言精讲 · 23 个经典模式 + 现代演进(前言篇)
java·开发语言·设计模式
骇客野人28 分钟前
Linux 全套实操方案(含目录详解、文件传输、日志、文件规范、环境变量、Java 应用部署运维)
java·linux·运维
_菜鸟果果29 分钟前
高德地图 JS API 2.0 在国产 Linux/ARM 电脑上渲染失败 的排查与解决
linux·开发语言·javascript
.Bryce.1 小时前
MCP+A2A+ANP,Agent通信协议的完整知识地图
java·人工智能·后端·agent·通信协议
SL_staff1 小时前
规则引擎选型陷阱:为什么QPS不是JVS-Rules对比Drools的核心指标
java·开源·全栈
LMT流氓兔1 小时前
第五单元——第4课:给工具参数加校验
java·前端·算法·ai·langchain
昂好的day1 小时前
VisionMaster(VM) 标定工具详解(上):为什么必须标定 + 九点标定手眼标定
开发语言·数码相机·c#
eleven_4u1 小时前
RocketMQ相关问题
java·运维·中间件