I read the differences between ArrayList and LinkedList , listed in When to use LinkedList over ArrayList? . I developed a small sample application to test the main advantage of LinkedList , but the results do not confirm that LinkedList outweighs the ArrayList when performing the operation:
ListIterator.add(E element)
Here is my code:
public static void main(String[] args) { int number = 100000; long startTime1 = System.currentTimeMillis(); fillLinkedList(number); long stopTime1 = System.currentTimeMillis(); long startTime2 = System.currentTimeMillis(); fillArrayList(number); long stopTime2 = System.currentTimeMillis(); System.out.println(" LinkedList needed: "+ (stopTime1 - startTime1)); System.out.println(" ArrayList needed: "+ (stopTime2 - startTime2)); } public static void fillLinkedList(int number){ LinkedList<Integer> list = new LinkedList<Integer>(); ListIterator<Integer> it = list.listIterator(); int i = 0; while(i++<number){ it.add(i); }
The measurement gives:
number 10,000 100,000 500,000 1,000,000 5,000,000 ArrayList 7 17 60 77 170 LinkedList 7 21 89 838 4127
I notice that increasing elements significantly degrades LinkedList performance, and ArrayList provides significantly better behavior. Do I understand something false?
source share