优化以下代码
import java.util.ArrayList;
public class Test {
public static void main(String args[]) {
ArrayList<String> list = new ArrayList<>();
String prefix = "pre";
for (int i = 0; i < 400; i++) {
String s = prefix + i;
list.add(s);
}
System.out.println(list);
}
}
不太清楚出题者的意图? String的问题?貌似是,但是不知道怎么改
--------- 后来更新
如果代码是
String s = prefix + i;
,那么我下面说的优化方法是错误的,不适用于这种情况。我说的只有在
prefix = prefix + i;
的情况下才成立。这段代码的主要问题是
java compiler 会用 StringBuilder 来进行字符串连接,在循环中会有不必要的重复操作。
上面的循环在执行过程中会重复new 400 个 StringBuilder();
要优化的话把
new StringBuilder()
提取到局部变量即可。见字节码注释: