黑马程序员技术交流社区
标题:
看Arrays.toString()的源码实现时竟然大脑短路了
[打印本页]
作者:
mnxnm
时间:
2015-6-2 11:14
标题:
看Arrays.toString()的源码实现时竟然大脑短路了
本帖最后由 mnxnm 于 2015-6-2 11:30 编辑
请看以下代码第12行代码处 if (i == iMax) ,每次循环都要判断一次,i == iMax,判断是否要添加"]"符号
这不是影响性能吗,如果直接每次 b.append(a
+","),最后把","替换成"]"不就好了
不用每次都去判断是不是要结束了要添加"]"了
哈哈,其实,我想错了,因为i == iMax这一步其实就是for循环的终止条件,循环一次检验一次,
满足条件就 return b.append(']').toString()并结束循环,哈哈,
public static String toString(int[] a) {
if (a == null)
return "null";
int iMax = a.length - 1;
if (iMax == -1)
return "[]";
StringBuilder b = new StringBuilder();
b.append('[');
for (int i = 0; ; i++) {
b.append(a[i]);
if (i == iMax)
return b.append(']').toString();
b.append(", ");
}
}
复制代码
作者:
w490541
时间:
2015-6-2 21:48
顶顶顶顶顶顶顶顶顶
作者:
Jfccnws
时间:
2015-6-9 00:08
的确是这样,看代码要仔细啊!return返回
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2