我在看约翰的回答here并认为它很光滑。我想知道是否可以使用 if 语句进一步改进它,但我不确定 if 语句是否会执行得更好。
if 语句是否比更改 String 的值“成本更高”?
String prefix = "";
for (String serverId : serverIds) {
sb.append(prefix);
prefix = ",";
sb.append(serverId);
}
对比
String prefix = "";
for (String serverId : serverIds) {
sb.append(prefix);
if( prefix.equals( "" ) {
prefix = ",";
}
sb.append(serverId);
}
最佳答案
第二个版本肯定会更慢。它不仅仅是一个 if,也是一个 equals 调用,而且大多数时候两个比较的字符串会不同,因此 equals 方法不会提前返回 - 相反它比简单的赋值做更多的工作(查看源代码String 中的 equals 方法的详细信息)。
当然,大多数时候可读性比速度更重要,Guava Joiner 可以帮助您编写非常清晰的代码。
关于java - 更改字符串值与 if 语句的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14147092/