public class ListBenchmark {
private List<String> removeEvenFromLinkedList() {
List<String> list = new LinkedList<String>();
populate(list);
removeEven(list, "LinkedList");
return list;
}
private List<String> removeEvenFromArrayList() {
List<String> list = new ArrayList<String>();
populate(list);
removeEven(list, "ArrayList");
return list;
}
private void removeEven(List<String> list, String description) {
long t0 = System.nanoTime();
int i = 0;
for (Iterator<String> it = list.iterator(); it.hasNext(); i++) {
if (i % 2 == 0) {
it.next();
it.remove();
}
}
long t1 = System.nanoTime();
System.out.println(description + " : " + (t1 - t0));
}
private void populate(List<String> list) {
for (int i = 0; i < 10_000; i++) {
list.add("hello");
}
}
public static void main(String[] args) {
ListBenchmark benchmark = new ListBenchmark();
for (int i = 0; i < 100; i++) {
benchmark.removeEvenFromArrayList();
benchmark.removeEvenFromLinkedList();
}
}
}