不断的向数组的中间插入数据,ArrayList和LinkedList哪个快

大部分人应该回答是LinkedList快一些,实际却不然。

import java.util.*;
public class Test
{
    public static void main(String[] args)
    {
        ArrayList<Integer> List = new ArrayList<Integer>();
        long start=System.currentTimeMillis();
        for( int i=0;i <10000;i++ ) //给数组增加10个Int元素
            List.add(i/2,i);
        System.out.println(System.currentTimeMillis()-start);
        //System.out.println(List);
        
        LinkedList<Integer> LList = new LinkedList<Integer>();
        long startL=System.currentTimeMillis();
        for( int i=0;i <10000;i++ ) //给数组增加10个Int元素
            LList.add(i/2,i);
        System.out.println(System.currentTimeMillis()-startL);
        //System.out.println(LList);
    }
}

ArrayList 19毫秒

LinkList 129毫秒

分析可能是由于LinkList需要遍历查询中间的位置比较浪费时间,所以慢了一些

原文地址:https://www.cnblogs.com/liqiu/p/3065203.html