Collections.singletonList(T item) 返回只含一个元素的不可变列表,传入指定对象后生成轻量级只读集合,适用于需高效传递单元素场景。该列表禁止修改操作,否则抛出异常,允许 null 元素,内部优化减少内存开销,常用于 API 参数传递或流处理中的临时数据构造。

Java 中的 Collections.singletonList(T item) 是一个静态方法,用于创建只包含一个元素的不可变列表。这个方法属于 java.util.Collections 工具类,适用于需要轻量级、只读单元素集合的场景。
基本用法
调用 Collections.singletonList() 时传入一个对象,它会返回一个类型为 List 的不可变列表:
这样就创建了一个只包含字符串 "Hello" 的列表。该列表不允许添加、删除或修改元素,任何修改操作都会抛出 UnsupportedOperationException。
特点与注意事项
-
不可变性:返回的列表是只读的,不能调用
add()、remove()、clear()等修改方法。 -
高效内存使用:相比
new ArrayList()添加一个元素,这种方式更节省空间,适合频繁使用单元素列表的场景。 - 共享实例:每次调用返回的是不同的列表对象,但内部实现做了优化,不会重复创建存储结构。
-
允许 null 元素:可以传入
null,例如:Collections.singletonList(null)是合法的。
适用场景
这个方法常用于以下情况:
立即学习“Java免费学习笔记(深入)”;
- 作为方法参数传递一个单元素集合,比如某些 API 接受
Collection>类型。 - 避免创建可变集合带来的开销,当确定集合只读且只有一个元素时。
- 在流处理或工具方法中临时构造简单数据集。
基本上就这些。使用 Collections.singletonList() 是一种简洁、安全、高效的创建单元素不可变列表的方式。










