According the below program the insertion and deletion in ArrayList is faster than LinkedList. Please provide me the proof of the fact that Insertion and deletion should be faster in LinkedList than ArrayList.
public static void main(String args[]) {
ArrayList al = new ArrayList();
LinkedList ll = new LinkedList();
int max_value = 10000000;
// --------------------------------ArrayList-----------------------------------
for (int i = 0; i <= max_value; i++) {
ll.add(Integer.valueOf(i));
al.add(Integer.valueOf(i));
}
int middle = max_value / 2;
long d1 = System.currentTimeMillis();
al.add(middle,Integer.valueOf(5));
al.add(middle,Integer.valueOf(5));
al.remove(middle);
al.add(middle,Integer.valueOf(5));
al.remove(middle);
al.add(middle,Integer.valueOf(5));
al.remove(middle);
al.add(middle,Integer.valueOf(5));
al.remove(middle);
al.add(middle,Integer.valueOf(5));
long d2 = System.currentTimeMillis();
System.out.println("Time Taken in ArrayList: " + (d2 - d1));
// --------------------------------LinkedList-----------------------------------
long d3 = System.currentTimeMillis();
ll.add(middle,Integer.valueOf(5));
ll.add(middle,Integer.valueOf(5));
ll.remove(middle);
ll.add(middle,Integer.valueOf(5));
ll.remove(middle);
ll.add(middle,Integer.valueOf(5));
ll.remove(middle);
ll.add(middle,Integer.valueOf(5));
ll.remove(middle);
ll.add(middle,Integer.valueOf(5));
long d4 = System.currentTimeMillis();
System.out.println("Time Taken in LinkedList: " + (d4 - d3));
}
Output:
Time Taken in ArrayList: 38 Time Taken in LinkedList: 537
Please provide me the proof of the fact that Insertion and deletion should be faster in LinkedList than ArrayList.Why do you think that insertion inlinkedlistis faster?linkedlistin the middle is faster thanArraylist?