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

反例:

1.4.集合初始化尽量指定大小

java 的集合类用起来十分方便 , 但是看源码可知 , 集合也是有大小限制的 。 每次扩容的时间复杂度很有可能是 O(n) , 所以尽量指定可预知的集合大小 , 能减少集合的扩容次数 。

反例:

正例:

1.5.字符串拼接使用 StringBuilder

一般的字符串拼接在编译期 java 会进行优化 , 但是在循环中字符串拼接 , java 编译期无法做到优化 , 所以需要使用 StringBuilder 进行替换 。

反例:

正例:

1.6.List的随机访问

大家都知道数组和链表的区别:数组的随机访问效率更高 。 当调用方法获取到 List 后 , 如果想随机访问其中的数据 , 并不知道该数组内部实现是链表还是数组 , 怎么办呢?可以判断它是否实现 RandomAccess 接口 。

推荐阅读