ArrayList和LinkedList区别及使用场景代码解析

 更新时间:2018年01月24日 08:45:10   作者:sherry_Rui  
这篇文章主要介绍了ArrayList和LinkedList区别及使用场景代码解析,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下

本文研究的主要是Java编程中ArrayList和LinkedList区别及使用场景的相关内容,具体介绍如下。

1、ArrayList是基于数组实现的,其构造函数为:

private transient Object[] elementData; 
private int size; 

ArryList初始化时,elementData数组大小默认为10;
每次add()时,先调用ensureCapacity()保证数组不会溢出,如果此时已满,会扩展为数组length的1.5倍+1,然后用array.copy的方法,将原数组拷贝到新的数组中;
ArrayList线程不安全,Vector方法是同步的,线程安全;

2、LinkedList是基于双链表实现的:

Object element; 
Entry next, 
   previous; 

初始化时,有个header Entry,值为null;

使用header的优点是:在任何一个条目(包括第一个和最后一个)都有一个前置条目和一个后置条目,因此在LinkedList对象的开始或者末尾进行插入操作没有特殊的地方;

使用场景:

(1)如果应用程序对各个索引位置的元素进行大量的存取或删除操作,ArrayList对象要远优于LinkedList对象;

( 2 ) 如果应用程序主要是对列表进行循环,并且循环时候进行插入或者删除操作,LinkedList对象要远优于ArrayList对象。

总结

以上就是本文关于ArrayList和LinkedList区别及使用场景代码解析的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

相关文章

  • Druid关闭监控页面关闭不了的问题及解决

    Druid关闭监控页面关闭不了的问题及解决

    这篇文章主要介绍了Druid关闭监控页面关闭不了的问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • 详解Mybatis分页插件 - 示例代码

    详解Mybatis分页插件 - 示例代码

    这篇文章主要介绍了详解Mybatis分页插件 - 示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧。
    2016-12-12
  • Swagger使用和注释详解

    Swagger使用和注释详解

    Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务,这篇文章主要介绍了Swagger使用和注释介绍,需要的朋友可以参考下
    2024-05-05
  • Java日常开发中读写TXT文本举例详解

    Java日常开发中读写TXT文本举例详解

    这篇文章主要给大家介绍了关于Java日常开发中读写TXT文本,包括使用BufferedReader、Scanner、FileInputStream等类进行读取,以及使用BufferedWriter、PrintWriter、FileOutputStream等类进行写入,需要的朋友可以参考下
    2024-12-12
  • Java算法之归并排序举例详解

    Java算法之归并排序举例详解

    这篇文章主要介绍了Java算法之归并排序的相关资料,归并排序是一种递归排序算法,通过将数组分成更小的子数组,递归地排序这些子数组,然后将它们合并成有序数组,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-04-04
  • Spring component-scan XML配置与@ComponentScan注解配置

    Spring component-scan XML配置与@ComponentScan注解配置

    这篇文章主要介绍了Spring component-scan XML配置与@ComponentScan注解配置,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-09-09
  • spring boot2结合mybatis增删改查的实现

    spring boot2结合mybatis增删改查的实现

    这篇文章主要给大家介绍了关于spring boot2结合mybatis增删改查的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用spring boot2具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09
  • 将一个数组按照固定大小进行拆分成数组的方法

    将一个数组按照固定大小进行拆分成数组的方法

    下面小编就为大家带来一篇将一个数组按照固定大小进行拆分成数组的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11
  • Java定时任务的三种实现方式

    Java定时任务的三种实现方式

    这篇文章主要给大家介绍了关于Java定时任务的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-01-01
  • Java中notify是顺序唤醒还是随机唤醒的

    Java中notify是顺序唤醒还是随机唤醒的

    这篇文章主要介绍了Java中notify是顺序唤醒还是随机唤醒的,有很多人会认为 notify 是随机唤醒的,但它真的是随机唤醒的吗?带着疑问一起进入文章了解具体的内容吧
    2022-05-05

最新评论