public class program {
public static void main (String [] args) {
ArrayList Arraylist = new ArrayList();
long elements_to_fill = (long) 1E7;
long Current_milies = (long) System.currentTimeMillis();
for (int i = 0; i < elements_to_fill; i++) {
Arraylist.add(i);
}
System.out.println("Insertion in array list takes " + (System.currentTimeMillis()-Current_milies) + " ms");
LinkedList linkedlist = new LinkedList();
Current_milies = ( long ) System.currentTimeMillis();
for (int i = 0; i <elements_to_fill; i++) {
linkedlist.add(i);
}
System.out.println("insertion in linked list take " + (System.currentTimeMillis() - Current_milies) + " ms");
}
}
输出:
在数组列表中插入需要3652 ms
插入是链接列表需要6862毫秒
与long elements_to_fill = (long) 1E5;
输出:
在数组列表中插入需要16 ms
链接列表中的插入需要8毫秒
如果我们添加1E7元素
,插入是数组列表与链表相比花费更少的时间但另一方面,如果我们在插入中添加1E7元素而不是插入,则与链表相比,数组列表需要更多时间。为什么会这样?
答案 0 :(得分:0)
pt-find
:索引缓慢访问,头部有效插入/删除,使用更多内存,大多数情况下速度较慢; LinkedList
:通过索引快速访问,在头部缓慢插入/删除,有效使用内存,在大多数情况下更快。尝试仅在第一个位置添加元素,而不仅仅在结尾处添加元素
正如XtremeBaumer的评论 示例如果您更改为(使用ArrayList
(而不是E7)):
1E5 elements
这些数字让你满意吗?