gpt4 book ai didi

java - 根据 Effective Java 返回空集合

转载 作者:行者123 更新时间:2023-12-02 05:36:15 26 4
gpt4 key购买 nike

Effective Java , 第 43 条指出:

return unmodifiable empty collections instead of null.

到目前为止一切顺利。是否有任何准则,究竟要返回什么?这个问题甚至有意义吗?我在想的是:

  • 是否返回一个空的 LinkedList<> 有区别吗?或 ArrayList<>(0)
  • 是否返回一个空的 HashMap<> 有区别吗?或 TreeMap<>
  • 等等

性能差异?几乎没有。

内存占用?也许吧。

CPU 占用空间?也许吧。

是否应该全局声明这些静态返回值(即缓存)?

最佳答案

Collections 类已经为您缓存了它们,该类包含一些实用方法。

您可以使用返回不可变空集合的 Collections.emptySet()Collections.emptyMap()Collections.emptyList()。只要您在代码中使用 SetMapList 接口(interface),您就应该这样做。

还有一些方法可以返回(同样是不可变的)包含单个实例的集合,例如 Collections.singletonList(mySingleElement)

它们并没有真正影响性能,但它们确实让你的代码更清晰:

return Collections.unmodifiableList(new ArrayList<>());

对比

return Collections.emptyList();

您还可以找到 Collections.EMPTY_LIST 等,但在使用这些方法时,您可以避免因(缺少)泛型而收到警告。

关于java - 根据 Effective Java 返回空集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45009329/

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