【发布时间】:2010-08-03 14:11:39
【问题描述】:
String prefix = "";
for (String serverId : serverIds) {
sb.append(prefix);
prefix = ",";
sb.append(serverId);
}
下面的代码比上面的代码运行得更快。 "," 前缀对象在每次迭代时都会创建不必要的对象。上面的代码需要 86324 纳秒,而我的代码只需要 68165 纳秒。
List<String> l = Arrays.asList("SURESH1","SURESH2","SURESH4","SURESH5");
StringBuffer l1 = new StringBuffer();
int sz = l.size();
int i=0; long t =
System.nanoTime();
for (String s : l)
{
l1.append(s);
if ( i != sz-1)
l1.append(","); i++;
}
}
long t2 = System.nanoTime();
System.out.println ((t2-t)); System.out.println(l1);
// The time taken for the above code is 68165 nano seconds
SURESH1,SURESH2,SURESH4,SURESH5
请告诉我你认为哪个更好。
【问题讨论】:
-
@jon skeet,我知道它是重复的,没有人回答,所以创建新的,道歉。让我知道哪个代码更快。
-
@NullUserException 我不明白你的 cmets。
标签: java premature-optimization