tyr*_*yro -2 java arrays string stringbuilder
我事先知道,将有84个字符串将被逗号分隔符追加,然后创建一个字符串,
哪种方式更好的是固定数组,字符串或字符串生成器?
如果通过"最佳"表示"大多数内存和/或运行时效率",那么您可能最好使用StringBuilder预分配.(看过String.joinJDK 中的实现StringJoiner,它使用了一个StringBuilder默认的初始容量[16个字符],而没有尝试避免重新分配和复制.)
你总结了84个字符串的长度,加上逗号的数量,StringBuilder用这个长度创建一个,将它们全部添加,并调用toString它.例如:
int length = 0;
for (int i = 0; i < strings.length; ++i) {
length += strings[i].length();
}
length += strings.length - 1; // For the commas
StringBuilder sb = new StringBuilder(length);
sb.append(strings[0]);
for (int i = 1; i < strings.length; ++i) {
sb.append(',');
sb.append(strings[i]);
}
String result = sb.toString();
Run Code Online (Sandbox Code Playgroud)