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版本选择适合的初始化方式。

相关推荐
L_09073 分钟前
【C++】C++11 新特性
开发语言·c++
方也_arkling5 分钟前
【Java-Day15】API篇-ArrayList集合
java·开发语言
AI人工智能+电脑小能手7 分钟前
【大白话说Java面试题 第89题】【Mysql篇】第19题:Hash 索引和 B+ 树索引的区别?它们在使用方面的区别?
java·数据库·mysql·面试·哈希算法
我是一颗柠檬9 分钟前
【Java后端技术亮点】动态路由权限(按钮级权限),细粒度控制到按钮级别
java·开发语言·后端·状态模式
Fanfanaas11 分钟前
C++ 继承
java·开发语言·jvm·c++·学习·算法
蚰蜒螟12 分钟前
走进 Linux 内核:从 touch 命令到磁盘 inode 的完整旅程
java·linux·前端
zzqssliu16 分钟前
taocarts 跨境独立站 SEO 优化实践(多语言 + 反向海淘场景)
java·javascript·php
在繁华处23 分钟前
Java从零到熟练(十一):Spring框架入门
java·开发语言·spring
小锋java123424 分钟前
【技术专题】LangChain4j 开发Java Agent智能体 - 整合SpringBoot4
java·人工智能
十五年专注C++开发26 分钟前
cereal 库:C++ 序列化的轻量之选
开发语言·c++·序列化·反序列化·cereal