問題
1.以下のメソッドtestA-Dを実行時間の短いものから順に並べなさい【3点】
2.実行時間の違いの理由を説明しなさい【7点】
public class StringAppend {
public static void main(String[] args) {
final int loop = 1000;
long base, temp;
base = System.nanoTime();
testA(loop);
temp = System.nanoTime();
System.out.print("A : ");
System.out.println(temp - base);
base = System.nanoTime();
testB(loop);
temp = System.nanoTime();
System.out.print("B : ");
System.out.println(temp - base);
base = System.nanoTime();
testC(loop);
temp = System.nanoTime();
System.out.print("C : ");
System.out.println(temp - base);
base = System.nanoTime();
testD(loop);
temp = System.nanoTime();
System.out.print("D : ");
System.out.println(temp - base);
}
public static String testA(int loop) {
String str = "";
for (int i=0; i<loop; i++) {
str += "hoge" + "piyo";
}
return str;
}
public static String testB(int loop) {
String str = "";
for (int i=0; i<loop; i++) {
str += "hoge";
str += "piyo";
}
return str;
}
public static String testC(int loop) {
StringBuilder bul = new StringBuilder();
for (int i=0; i<loop; i++) {
bul.append("hoge" + "piyo");
}
return bul.toString();
}
public static String testD(int loop) {
StringBuilder bul = new StringBuilder();
for (int i=0; i<loop; i++) {
bul.append("hoge");
bul.append("piyo");
}
return bul.toString();
}
}
投稿日時 : 2007年11月27日 13:34