class ExeTime {
public static void main (String[] args) {
LinkedList<Integer> ll = new LinkedList<Integer>();
ArrayList<Integer> al = new ArrayList<Integer>();
addElement("LinkedList", ll);
addElement("ArrayList", al);
}
static void addElement(String type, List listType){
final long startTime = System.currentTimeMillis();
for(int i = 0; i<= 1E5; i++){
listType.add(i);
}
final long endTime = System.currentTimeMillis();
final long timeTaken = endTime - startTime;
System.out.println("Type:::: "+type+" ::timeTaken:: "+timeTaken);
} }
Output for above piece of code is ::::
Type:::: LinkedList ::timeTaken:: 11
Type:::: ArrayList ::timeTaken:: 18
Now if I interchange the call for addElement method then I get the following output::::
Type:::: ArrayList ::timeTaken:: 10
Type:::: LinkedList ::timeTaken:: 16
I fail to understand why the sequence to add integer to a LinkedList and ArrayList change the execution time of the method. I tried the same for removing the elements and the results were OK. Could anyone please help me get to know as why this might be happening only while adding elements...