This question already has answers here:
Collections.emptyList() vs. new instance
(7个答案)
4个月前关闭。
我在Collections类中找到emptyEnumeration(),EmptyIterator(),EmptyList()和其他方法。我搜索了示例和目的,但找不到合适的示例和目的。
如果有人可以用项目可用性示例进行说明,这需要很大的帮助,那就是需要创建emptyList(),并且与不添加任何元素而创建
(7个答案)
4个月前关闭。
我在Collections类中找到emptyEnumeration(),EmptyIterator(),EmptyList()和其他方法。我搜索了示例和目的,但找不到合适的示例和目的。
如果有人可以用项目可用性示例进行说明,这需要很大的帮助,那就是需要创建emptyList(),并且与不添加任何元素而创建
new ArrayList<>()
相比,使用它更好。 最佳答案
它们实际上返回一个强制转换的单个实例,因此您不必在每次调用emptyList()
的堆上创建新对象。因此它更快,并节省了内存和GC。
这是一个初始化程序,由List
实现在内部使用,以决定它们是否实际上需要分配空间(甚至添加元素)还是保持列表不变(如果在运行时不添加任何元素,因为它有时发生的次数比您可能要多)认为)。
这些对象是不可变的,因此您可以在任何地方安全地重用同一实例,而不必进行通常为确保对象状态完整性而进行的同步。
10-08 00:40