Vector vs ArrayList
$ cat Main.j #define STR(x) #x #define STR_DEEP(x) STR(x) import java.util.*; public class Main { public static void main(String[] args) { Object obj = new Object(); TYPE<Object> list = new TYPE<Object>(); long time = System.currentTimeMillis(); for (int i = 10000000; --i >= 0; ) { list.add(obj); #if REMOVE list.remove(0); #endif } time = System.currentTimeMillis() - time; System.out.printf("%9s %-8s : %d\n", STR_DEEP(TYPE), #if REMOVE "(add+rm)", #else "(add)", #endif time); } } $ cat run.sh for remove in 1 0 do for type in Vector ArrayList do cpp -P -DTYPE=$type -DREMOVE=$remove Main.j > Main.java javac Main.java java -Xmx128m Main done done $ sh run.sh Vector (add+rm) : 611 ArrayList (add+rm) : 470 Vector (add) : 891 ArrayList (add) : 1292
(追記)id:namasute0:20061018 に詳しい解説が。