一段神奇的算法

Arrays.toString() 使用的算法:

public static String toString(boolean[] 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(", ");
    }
}

而普通的字符串拼接是怎么写的呢?

public static String toString(String[] source) {
    if (source == null) {
        return "null";
    }
    if (source.length < 1) {
        return "[]";
    }
    StringBuilder builder = new StringBuilder();
    builder.append("[");
    for (String s : source) {
        builder.append(s).append(", ");
    }
    // 删除多余的空格和逗号
    builder.deleteCharAt(builder.length() - 1);
    builder.deleteCharAt(builder.length() - 1);
    builder.append("]");
    return builder.toString();
}

你品,你细品。

你可能感兴趣的:(一段神奇的算法)