对于课堂作业,我们被告知使用system Time
Array List
和Linked List
操作为一些不同的操作计时。
操作涉及getting
或removing
所有项目,并且如此:
阵列 - 获取(从高到低),获得(从低到高),移除(从高到低),>移除(从低到高) 链接列表 - 获取,获取与迭代器。
这导致了一些奇特的结果......
在第一次试验中,我得到了阵列列表。
对于阵列列表,执行了以下操作,并导致以下系统时间。
所有项目都从低指数变为高指数。这需要2,931,133毫秒(毫秒)。
所有项目都从高指数变为低指数。这需要2,638,191毫秒。所有项目都从低指数到高指数被删除。这需要5,230,717,452毫秒。最后,所有项目都从高指数到低指数被删除。这需要3,843,744毫秒。
但是,如果你继续运行程序,最终从>数组列表中获取从低到高,从高到低的时间需要0ms。但是,任何其他操作的时间没有明显减少。它为什么这样做???
我猜garbage collector?
要注意的一件事是初始化数组列表我正在使用随机Integer
对象,每次启动运行时,我都在构建一个新的数组列出新对象。
感谢您的任何见解。我不必报道为什么会这样,但我很好奇。 注意:我犯了一个错误。我使用纳秒秒而不是毫秒!对于那个很抱歉。 我也弄清楚了,这里有一些代码。
/**
* This method will get all items from the Array List moving from low to high
* @param list the ArrayList to be used
*/
public static void getTime1(ArrayList list)
{
for(int i=0; i < amt ; i++)
{
int test2 = (int) list.get(i);
test += test2;
}
}
/**
* This method will get all items from the Array List moving from high to low
* @param list the ArrayList to be used
*/
public static void getTime2(ArrayList list)
{
for(int i=(amt-1); i != -1; i--)
{
list.get(i);
}
}