【发布时间】:2018-09-28 04:51:18
【问题描述】:
我观察到与LinkedList 相比,ArrayList 中的插入操作花费的时间更少(以毫秒为单位)。请对此有所了解。
这是我的测试代码:
List<String> strLnkdList = new LinkedList<String>();
long start1 = System.currentTimeMillis();
for(int i=0;i<10000;i++){
strLnkdList.add("Test"+i);
}
long end1 = System.currentTimeMillis();
System.out.println("LinkedList Time in millis: " + (end1-start1));
List<String> strArrayList = new ArrayList<String>(10);
start1 = System.currentTimeMillis();
for(int i=0;i<10000;i++){
strArrayList.add("Test"+i);
}
end1 = System.currentTimeMillis();
System.out.println("ArrayList Time in millis: " + (end1-start1));
输出:
LinkedList Time in millis: 22
ArrayList Time in millis: 10
【问题讨论】:
-
是的,现在尝试在列表中添加一些东西,而不是添加新元素。在那之前你也进行过试跑吗?
-
我记得在某处读到过,在实践中,ArrayList 几乎总是优于 LinkedList,即使您认为它会更慢。
-
@AndyTurner 怎么是重复的?
-
@Antoniossss 正如你所建议的那样,我尝试了容量为 10000 并且输出仍然相同,即 LinkedList 时间(毫秒):37 ArrayList 时间(毫秒):16
-
@Antoniossss 现在我尝试在两者中追加或插入更多内容。这次“LinkedList”赢了:) 即 ArrayList_2 以毫秒为单位的时间:34 .... LinkedList_2 以毫秒为单位的时间:4 ...谢谢
标签: java arraylist linked-list insertion