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

正例:

1.7.频繁调用 Collection.contains 方法请使用 Set

在 java 集合类库中 , List 的 contains 方法普遍时间复杂度是 O(n) , 如果在代码中需要频繁调用 contains 方法查找数据 , 可以先将 list 转换成 HashSet 实现 , 将 O(n) 的时间复杂度降为 O(1) 。

反例:

正例:

2.让代码更优雅

2.1.长整型常量后添加大写 L

在使用长整型常量值时 , 后面需要添加 L , 必须是大写的 L , 不能是小写的 l , 小写 l 容易跟数字 1 混淆而造成误解 。

反例:

正例:

2.2.不要使用魔法值

当你编写一段代码时 , 使用魔法值可能看起来很明确 , 但在调试时它们却不显得那么明确了 。 这就是为什么需要把魔法值定义为可读取常量的原因 。 但是 , -1、0 和 1 不被视为魔法值 。

推荐阅读