private String toString0(String prefix, String separator, String suffix, boolean human) {
    int len = arr.length;
    StringBuilder sb = new StringBuilder(len * 10 + 10);

    if (prefix != null) {
      sb.append(prefix);
    }

    for (int i = 0; i < len; i++) {
      if ((i != 0) && (separator != null)) {
        sb.append(separator);
      }

      if (human) {
        sb.append(((ToHuman) arr[i]).toHuman());
      } else {
        sb.append(arr[i]);
      }
    }

    if (suffix != null) {
      sb.append(suffix);
    }

    return sb.toString();
  }
Helper for {@link #toString} and {@link #toHuman}, which both of those call to pretty much do
everything.

@param prefix {@code null-ok;} prefix for the start of the result
@param separator {@code null-ok;} separator to insert between each item
@param suffix {@code null-ok;} suffix for the end of the result
@param human whether the output is to be human
@return {@code non-null;} the custom string
android/android_framework/dex-maker/src/main/java/com/android/dx/util/FixedSizeList.java