JavaSE 学习参考:ArrayList和LinkedList区别

本文探讨了ArrayList和LinkedList这两种List接口实现类的区别。主要从存储结构、内存占用、随机访问及添加删除操作性能等方面进行了详细对比,并通过示例代码演示了实际操作中的性能差异。
   

ArrayListLinkedList这两个都是List接口的实现类,两者都符合List接口特征允许存储重复元素,逻辑上是有序的,允许通过索引随机访问,但两者还是有区别:

对于存储空间上ArrayList是实现了基于数组的数据结构数据元素保存在连继分配的内存,占用空间较小,LinkedList基于链表的数据结构,除了保存数据本身之外,还需要保存每个数据元素的前继和后继元素引用。占用内存空间较大。

 对于随机访问getsetArrayList性能上优于LinkedList,因为LinkedList要从表头开始搜索。

对于添加和删除操作addremoveLinedList比较占优势,因为ArrayList要移动数据。

示例程序演示向两类列表对象中插入一条记录,性能上差别。

示例代码:

  public class Test {

public static void main(String[] args) {

        List<String> aList=new ArrayList<String>();

        for(int i=0;i<1000000;i++){

         //向aList中添加1000个字符串

         aList.add(i+"");

        }

        List<String> bList=new LinkedList<String>();

        for(int i=0;i<1000000;i++){

         //向bListList中添加1000个字符串

         bList.add(i+"");

        }

        

        long begin=System.currentTimeMillis();

        aList.add(100,"List");

        long end=System.currentTimeMillis();

        System.out.println("ArrayList添加操作耗时:"+(end-begin));

        

        begin=System.currentTimeMillis();

        bList.add(100,"List");

        end=System.currentTimeMillis();

        System.out.println("LinkedList添加操作耗时:"+(end-begin));

        

}

}

 

 

 

运行程序,结果如下:

ArrayList添加操作耗时:2

LinkedList添加操作耗时:0

 

  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值