答案:Collections.singletonList用于创建只含一个元素的不可变列表,轻量、线程安全、节省内存,适用于传递单元素集合场景,但不支持增删改操作且不可序列化。

在Java中,Collections.singletonList 是一个便捷方法,用于创建只包含一个元素的不可变列表。这种方法高效且安全,适用于需要传递单个元素集合的场景,避免了手动创建 ArrayList 并添加元素的冗余代码。
singletonList 方法简介
Collections.singletonList(T o) 是 java.util.Collections 类中的静态方法,接收一个对象参数,返回一个类型为 List
这个方法的优势在于:
- 轻量级:不创建额外的数据结构,直接包装传入的对象
- 线程安全:返回的列表是不可变的,适合多线程环境
- 节省内存:相比 new ArrayList() 更节省资源
基本使用示例
以下是一个简单的使用示例:
立即学习“Java免费学习笔记(深入)”;
String name = "Alice"; ListsingleNameList = Collections.singletonList(name); System.out.println(singleNameList); // 输出: [Alice] System.out.println(singleNameList.size()); // 输出: 1
尝试修改该列表会抛出 UnsupportedOperationException:
singleNameList.add("Bob"); // 抛出异常
singleNameList.remove(0); // 抛出异常
适用场景与注意事项
该方法常用于以下情况:
- 作为方法参数传递单个元素的集合
- 初始化配置项或默认值列表
- API 返回结果中只有一个元素时的封装
需要注意:
- 传入的元素可以为 null,即 Collections.singletonList(null) 是合法的
- 返回的 List 是不可序列化的,若需序列化应做额外处理
- 由于不可变,不适合后续需要增删改操作的场景
基本上就这些。如果只是临时使用一个只读的单元素列表,Collections.singletonList 是简洁又高效的选择。










