Java中ArrayList和LinkedList的区别

ArrayList和LinkedList的大致区别如下:
1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。 
2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。 
3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。 

public static void main(String[] args){

        List a = new ArrayList();
        LinkedListb = new LinkedList();
        int i;
        for(i=0;i<100000;i++)
        {
            a.add(i,i);
        }
        for(i=0;i<100000;i++)
        {
            b.add(i,i);
        }
        long aTime1= System.currentTimeMillis();
        for(i=0;i<100000;i++)
        {
            a.remove(99999-i);
        }
        long aTime2= System.currentTimeMillis();
        long bTime1= System.currentTimeMillis();
        for(i=0;i<100000;i++)
        {
            b.remove(99999-i);
        }
        long bTime2= System.currentTimeMillis();
        System.out.println("aTime:"+(aTime2-aTime1)+"bTime"+(bTime2-bTime1));

} 
  

 

ArrayList更适合读取数据,linkedList更多的时候添加或删除数据。

 

你可能感兴趣的:(Java中ArrayList和LinkedList的区别)