package test; import java.util.ArrayList; import java.util.Collections; import java.util.LinkedList; import java.util.List; public class P2 { public static int max = ;//测试元素数 public static void main(String[] args) { // TODO Auto-generated method stub List
public static long delTime(List list) { long time = System.currentTimeMillis(); // 在索引下,从前往后 逐个删除每个元素 /*for (int i = 0; i
= 0; i--) { list.remove(i); }*/ // 在索引下,删除指定段落的元素,奇数位索引段 for (int i = 0; i
这3种情况运行结果如下:
在索引下,从前往后 逐个删除每个元素 测试元素数: ArrayList访问消耗的时间:41ms LinkedList访问消耗的时间:36210ms ArrayList删除消耗的时间:412ms LinkedList删除消耗的时间:3420ms ArrayList插入消耗的时间:8ms LinkedList插入消耗的时间:9ms Process finished with exit code 0 在索引下,从后往前 逐个删除每个元素 测试元素数: ArrayList访问消耗的时间:25ms LinkedList访问消耗的时间:36412ms ArrayList删除消耗的时间:9ms LinkedList删除消耗的时间:9ms ArrayList插入消耗的时间:11ms LinkedList插入消耗的时间:9ms Process finished with exit code 0 在索引下,删除指定段落的元素,奇数位索引段 测试元素数: ArrayList访问消耗的时间:21ms LinkedList访问消耗的时间:39146ms ArrayList除消耗的时间:274ms LinkedList删除消耗的时间:1844ms ArrayList插入消耗的时间:8ms LinkedList插入消耗的时间:7ms Process finished with exit code 0 总结:在集合10万目标测试数,这3种情况下,在删除效率上。 在索引下,从前往后 逐个删除每个元素时,ArrayList较LinkedList快(3420/412=8.)8.3倍; 在索引下,从后往前 逐个删除每个元素时,ArrayList与LinkedList效率均等(9/9=1); 在索引下,删除指定段落的元素,奇数位索引段时,,ArrayList较LinkedList快(1844/274=6.)6.7倍;