public class ListBenchmark { private List removeEvenFromLinkedList() { List list = new LinkedList(); populate(list); removeEven(list, "LinkedList"); return list; } private List removeEvenFromArrayList() { List list = new ArrayList(); populate(list); removeEven(list, "ArrayList"); return list; } private void removeEven(List list, String description) { long t0 = System.nanoTime(); int i = 0; for (Iterator 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 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(); } } }