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);
} }
以上代码的输出是::::
Type :::: LinkedList :: timeTaken :: 11
Type :::: ArrayList :: timeTaken :: 18
现在,如果我交换addElement方法的调用,那么我得到以下输出::::
Type :::: ArrayList :: timeTaken :: 10
Type :::: LinkedList :: timeTaken :: 16
我无法理解为什么将整数添加到LinkedList和ArrayList的序列会改变方法的执行时间。我尝试删除元素相同,结果还可以。任何人都可以帮助我了解为什么只有在添加元素时才会发生这种情况......