gpt4 book ai didi

java - Collections.emptyList() 与新实例

转载 作者:行者123 更新时间:2023-12-02 02:20:04 25 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/57281797/

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