首页 > 解决方案 > “空”集合的目的是什么?

问题描述

我在 Collections 类中找到了 emptyEnumeration()、emptyIterator()、emptyList() 等方法。我搜索了示例和目的,但找不到合适的。

如果有人可以用项目可用性示例进行解释,那将是一个很大的帮助,我们需要创建 emptyList() 并且使用它也比在new ArrayList<>()不添加任何元素的情况下创建 a 更好。

标签: javadata-structurescollections

解决方案


它们实际上返回一个强制转换的单个实例,因此您不会在每次调用时在堆上创建新对象emptyList()。所以它更快并且节省内存和GC。

它是一个初始化器,实现内部使用它List 来决定它们是否真的需要分配空间(甚至添加元素),或者如果在运行时不添加任何元素,则保持列表不变(因为它有时会发生,比你想象的更频繁)。

这些对象是不可变的,因此您可以在任何地方安全地重用同一个实例,而无需进行通常用于确保对象状态完整性的同步。


推荐阅读