D. *_*ács 2 java collections effective-java
Effective Java,第43项规定:
返回不可修改的空集合而不是
null.
到现在为止还挺好.有什么指导方针,到底要返回什么?这个问题甚至有意义吗?我在想的是:
LinkedList<>或是否有所不同ArrayList<>(0)?HashMap<>或者是否有所不同TreeMap<>?性能差异?几乎不.
内存占用?也许.
CPU占用空间?也许.
是否应该全局声明这些静态返回(即缓存)?
Kay*_*man 11
它们已经由Collections类缓存,其中包含一些实用方法.
您可以使用Collections.emptySet(),Collections.emptyMap()并Collections.emptyList()返回不可变的空集合.正如只要你使用Set,Map并List在你的代码接口,你应该.
还有一些方法可以返回包含单个实例的(也是不可变的)集合,例如Collections.singletonList(mySingleElement).
它们并没有真正影响性能,但它们确实使您的代码更清晰:
return Collections.unmodifiableList(new ArrayList<>());
Run Code Online (Sandbox Code Playgroud)
与
return Collections.emptyList();
Run Code Online (Sandbox Code Playgroud)
您也可以找到Collections.EMPTY_LIST等等,但在使用这些方法时,您可以避免因(缺乏)泛型而收到警告.
| 归档时间: |
|
| 查看次数: |
485 次 |
| 最近记录: |