不可变的空集合

有时使用不可变的空集合是合适的。该 Collections 类提供了一种有效的方式来获得这样的集合:

List<String> anEmptyList = Collections.emptyList();
Map<Integer, Date> anEmptyMap = Collections.emptyMap();
Set<Number> anEmptySet = Collections.emptySet();

这些方法是通用的,会自动将返回的集合转换为它所分配的类型。也就是说,例如 emptyList() 的调用可以分配给任何类型的 List,同样也可以分配给 emptySet()emptyMap()

这些方法返回的集合是不可变的,因为如果你试图调用会改变其内容的方法(addput 等),它们会抛出 UnsupportedOperationException。这些集合主要用作替代空方法结果或其他默认值,而不是使用 null 或使用 new 创建对象。