StringJoiner 其实是基于StringBuilder实现的
String.join其实是基于StringJoiner实现的
public class Example6 {
public static void main(String[] args) {
String[] strArr = {"aaaaa", "bbbbb", "ccccc", "ddddd", "eeeee"};
StringBuilder sb = new StringBuilder();
for (int i = 0; i < strArr.length; i++) {
if (i > 0 && i < strArr.length) {
sb.append("\t");
} else {
sb.append("\n");
}
sb.append(strArr[i]);
}
String str = sb.toString();
System.out.println(str);
System.out.println(str.length());
}
}
打印输出格式如下:
aaaaa bbbbb ccccc ddddd eeeee
30
更快的代码实现对比如下:
public class Example6 {
public static void main(String[] args) {
String[] strArr = {"aaaaa", "bbbbb", "ccccc", "ddddd", "eeeee"};
int length = strArr.length;
StringBuilder sb1 = new StringBuilder();
StringBuilder sb2 = new StringBuilder();
long start1Time = System.currentTimeMillis();
for (int j = 0; j < 100000; j++) {
for (int i = 0; i < length; i++) {
if (i > 0 && i < length) {
sb1.append("\t");
} else {
sb1.append("\n");
}
sb1.append(strArr[i]);
}
}
long end1Time = System.currentTimeMillis();
long start2Time = System.currentTimeMillis();
for (int j = 0; j < 100000; j++) {
for (int i = 0; i < length; i++) {
if (i > 0) {
sb2.append("\t");
}
sb2.append(strArr[i]);
}
sb2.append("\n");
}
long end2Time = System.currentTimeMillis();
System.out.println("方案一共耗时 : " + (end1Time - start1Time));
System.out.println("方案二共耗时 : " + (end2Time - start2Time));
/*String str1 = sb1.toString();
System.out.println(str1);
String str2 = sb2.toString();
System.out.println(str2);*/
}
}
方案一共耗时 : 33
方案二共耗时 : 24
BUILD SUCCESSFUL (total time: 0 seconds)
本文通过对比两种StringBuilder拼接字符串的方法,展示了如何优化代码以提高执行效率。实验结果显示,通过简化条件判断可以有效减少运行时间。
5万+

被折叠的 条评论
为什么被折叠?



