首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Collections.EMPTY_MAP、EMPTY_LIST、EMPTY_SET的用途是什么

Collections.EMPTY_MAP、EMPTY_LIST、EMPTY_SET的用途是什么
EN

Stack Overflow用户
提问于 2011-05-30 09:46:55
回答 4查看 1.6K关注 0票数 5

既然它们都是不可变的,为什么还需要它呢?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-05-30 09:49:33

有时,这比返回null更好。

代码语言:javascript
复制
public List<?> getList(){
    if(list == null){
        return Collections.emptyList();
    }

    return list;
}

Reference

票数 8
EN

Stack Overflow用户

发布于 2011-05-30 09:53:44

它们是方便的特性:对于必须返回非空值的函数,您可以使用它们,而不必创建新对象,并且可以对它们进行相等性检查。

票数 1
EN

Stack Overflow用户

发布于 2011-07-07 00:41:02

只是补充一下上面的内容:

**在方法调用者接收EMPTY_something而不是实例化的List/Map的情况下,使用空的list/map/set可以获得一些性能优势。如果你查看Collections.java的源代码,你可以看到EmptyList,EmptyMap静态类,与常规的ArrayList不同,它具有精简的方法实现。HashMap。

**节省JVM堆空间,因为没有为这些空集合设置初始容量。

以上可能看起来不是很重要,但是重要的考虑因素和最佳实践。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6171624

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档