博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaSE 学习参考:ArrayList和LinkedList区别
阅读量:6969 次
发布时间:2019-06-27

本文共 1011 字,大约阅读时间需要 3 分钟。

hot3.png

   6632162879281673717.png

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

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

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

对于添加和删除操作add和remove,LinedList比较占优势,因为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

 

  

转载于:https://my.oschina.net/u/2971691/blog/879229

你可能感兴趣的文章
设计模式(享元模式)
查看>>
oracle中怎么查看存储过程的源码
查看>>
Django-restframework 之 Exceptions分析
查看>>
下拉弹窗 pop push动画实现
查看>>
top命令查看内容详解
查看>>
Hive学习之七《 Sqoop import 从关系数据库抽取到HDFS》
查看>>
python:ElementTree操作XML
查看>>
div 居中
查看>>
java 关键字final static
查看>>
谷歌跟随微软加入云安全联盟 亚马逊依然游离
查看>>
用户黏性与垂直社区,互联网营销
查看>>
金山游戏研发改制新进展:计划本周发出正式公告
查看>>
艾伟:WCF从理论到实践(11)-异步
查看>>
艾伟也谈项目管理,如何做一个合格的项目经理
查看>>
cookie
查看>>
Hibernate学习(4)- Hibernate对象的生命周期
查看>>
windows模糊查询指定进程是否存在
查看>>
distcc配置
查看>>
sublime text 2 c++编译 环境 问题小结
查看>>
MySQL索引分析
查看>>