gpt4 book ai didi

java - Collections.emptyList() 与新实例

转载 作者:bug小助手 更新时间:2023-10-28 10:41:29 28 4
gpt4 key购买 nike

在实践中,返回一个像 this 这样的空列表会更好吗? :

return Collections.emptyList();

或喜欢 this :

return new ArrayList<Foo>();

或者这完全取决于您要如何处理返回的列表?

最佳答案

主要区别在于 Collections.emptyList()返回一个 不可变 列表,即您不能向其中添加元素的列表。 (同样适用于 Java 9 中引入的 List.of()。)

在您确实想要修改返回列表的极少数情况下,Collections.emptyList()List.of() 是因此不是一个好的选择。

我想说,只要契约(Contract)(文档)没有明确说明不同,返回一个不可变列表是完全可以的(甚至是首选方式)。


另外,emptyList() might not create a new object with each call.

Implementations of this method need not create a separate List object for each call. Using this method is likely to have comparable cost to using the like-named field. (Unlike this method, the field does not provide type safety.)

emptyList的实现如下:

public static final <T> List<T> emptyList() {
return (List<T>) EMPTY_LIST;
}

因此,如果您的方法(返回一个空列表)被频繁调用,这种方法甚至可以在 CPU 和内存方面为您提供稍微更好的性能。

关于java - Collections.emptyList() 与新实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5552258/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com