消灭 Java 代码的“坏味道”(11)

1.2.应该使用 Collection.isEmpty() 检测空

使用 Collection.size() 来检测空逻辑上没有问题 , 但是使用 Collection.isEmpty() 使得代码更易读 , 并且可以获得更好的性能 。 任何 Collection.isEmpty() 实现的时间复杂度都是 O(1) , 但是某些 Collection.size() 实现的时间复杂度可能是O(n) 。

反例:

正例:

如果需要还需要检测 null , 可采用:

  • CollectionUtils.isEmpty(collection)

  • CollectionUtils.isNotEmpty(collection)

1.3.不要把集合对象传给自己

将集合作为参数传递给集合自己的方法要么是一个错误 , 要么是无意义的代码 。

此外 , 由于某些方法要求参数在执行期间保持不变 , 因此将集合传递给自身可能会导致异常行为 。

推荐阅读