配列の間にデータをどんどん挿入し、ArrayListとLinkedListのどちらが速いか

2251 ワード

ほとんどの人は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 ms
LinkList 129 ms
解析はLinkListがクエリの間の位置を巡回するのに時間がかかるため、遅いかもしれません.