特定のシナリオで、実行速度の比較を行ってみた。
package unit;
import java.util.ArrayList;
public class PerformanceTest {
private static final int MAX = 100000000;
public static void main(String[] args) {
long startTime,endTime;
for(int i = 0; i < 5; i ++) {
startTime = System.currentTimeMillis();
test01();
endTime = System.currentTimeMillis();
System.out.println(String.format("01 %d %d %d", startTime, endTime, endTime - startTime));
startTime = System.currentTimeMillis();
test02();
endTime = System.currentTimeMillis();
System.out.println(String.format("02 %d %d %d", startTime, endTime, endTime - startTime));
}
}
private static void test01() {
ArrayList<String> list = new ArrayList<>();
for (int i = 0; i < MAX; i++) {
list.add("Sample");
}
String.join(",", list);
}
private static void test02() {
String[] array = new String[MAX];
for (int i = 0; i < MAX; i++) {
array[i] = "Sample";
}
String.join(",", array);
}
}
実行結果
01 1571513603429 1571513609400 5971
02 1571513609422 1571513615305 5883
01 1571513615305 1571513620960 5655
02 1571513620960 1571513625083 4123
01 1571513625083 1571513630927 5844
02 1571513630927 1571513634924 3997
01 1571513634924 1571513640615 5691
02 1571513640616 1571513643817 3201
01 1571513643817 1571513649441 5624
02 1571513649441 1571513654119 4678
サイズが予め決まっている場合、配列の方がListより早いかもしれない。
でも、その速さの違いは、結構小さい。