import java.util.*;
import java.text.*;
class ListTest {
long start
= System.
nanoTime(); r.run();
}
private ListTest(List<Object> list, int n) {
System.
out.
println("class = " + list.
getClass().
getName() + ", n = " + n
); list.add(null);
test("(nop): ", () -> {for (int i = 1; i < n; i++) /*nop*/;});
test("add(int, Obj): ", () -> {for (int i = 1; i < n; i++) list.add(r.nextInt(list.size()), null);});
test("remove(int): ", () -> {for (int i = 0; i < n; i++) list.remove(r.nextInt(list.size()));});
}
public static void main
(String[] args
) { int n = 10000;
new ListTest(new ArrayList<>(), n);
new ListTest(new LinkedList<>(), n);
new ListTest(new Vector<>(), n);
}
}
aW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS50ZXh0Lio7CmNsYXNzIExpc3RUZXN0IHsKCXByaXZhdGUgdm9pZCB0ZXN0KFN0cmluZyBsYWJlbCwgUnVubmFibGUgcikgewoJCWxvbmcgc3RhcnQgPSBTeXN0ZW0ubmFub1RpbWUoKTsKCQlyLnJ1bigpOwoJCWxvbmcgZW5kID0gU3lzdGVtLm5hbm9UaW1lKCk7CgkJU3lzdGVtLm91dC5wcmludGxuKGxhYmVsICsgTnVtYmVyRm9ybWF0LmdldE51bWJlckluc3RhbmNlKCkuZm9ybWF0KGVuZCAtIHN0YXJ0KSArICIgbnMiKTsKCX0KCXByaXZhdGUgTGlzdFRlc3QoTGlzdDxPYmplY3Q+IGxpc3QsIGludCBuKSB7CgkJUmFuZG9tIHIgPSBuZXcgUmFuZG9tKCk7CgkJU3lzdGVtLm91dC5wcmludGxuKCJjbGFzcyA9ICIgKyBsaXN0LmdldENsYXNzKCkuZ2V0TmFtZSgpICsgIiwgbiA9ICIgKyBuKTsKCQlsaXN0LmFkZChudWxsKTsKCQl0ZXN0KCIobm9wKTogIiwgKCkgLT4ge2ZvciAoaW50IGkgPSAxOyBpIDwgbjsgaSsrKSAvKm5vcCovO30pOwoJCXRlc3QoImFkZChpbnQsIE9iaik6ICIsICgpIC0+IHtmb3IgKGludCBpID0gMTsgaSA8IG47IGkrKykgbGlzdC5hZGQoci5uZXh0SW50KGxpc3Quc2l6ZSgpKSwgbnVsbCk7fSk7CgkJdGVzdCgicmVtb3ZlKGludCk6ICIsICgpIC0+IHtmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgbGlzdC5yZW1vdmUoci5uZXh0SW50KGxpc3Quc2l6ZSgpKSk7fSk7CgkJU3lzdGVtLm91dC5wcmludGxuKCIiKTsKCX0KCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKCQlpbnQgbiA9IDEwMDAwOwoJCW5ldyBMaXN0VGVzdChuZXcgQXJyYXlMaXN0PD4oKSwgbik7CgkJbmV3IExpc3RUZXN0KG5ldyBMaW5rZWRMaXN0PD4oKSwgbik7CgkJbmV3IExpc3RUZXN0KG5ldyBWZWN0b3I8PigpLCBuKTsKCX0KfQo=
class = java.util.ArrayList, n = 10000
(nop): 135,906 ns
add(int, Obj): 18,021,541 ns
remove(int): 13,711,185 ns
class = java.util.LinkedList, n = 10000
(nop): 332,831 ns
add(int, Obj): 60,957,543 ns
remove(int): 73,760,127 ns
class = java.util.Vector, n = 10000
(nop): 13,875 ns
add(int, Obj): 14,875,156 ns
remove(int): 12,211,621 ns