我阅读了 JDK 的源代码,并对代码的措辞感到困惑。代码的方法意味着返回指定数组内容的字符串表示。
例如:int[] a = { 0,1, 2, 3, 4, 5, 6, 7, 8, 9 };
返回 : [1, 2, 3, 4, 5, 6, 7, 8, 9]
JDK 版本
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(", ");
}
}
我的问题:
1,为什么不把 if 条件放在 for 循环
代码的外面:
//the follow code efficiency may be better or not
for (int i = 0; i< iMax; i++) {
b.append(a[i]);
b.append(", ");
}
return b.append(a[iMax]).append(']').toString();
2、StringBuilder
方法 append
,如果参数是括号,方法使用char参数而不是String,我深入 append
方法,append(char c)
方法看起来效率很高,但我不确定
谢谢