arraylist和linkedlist的区别_arraylist 和linkedlist

arraylist和linkedlist的区别_arraylist 和linkedlist       这段时间把疯狂JAVA再看了一遍,发现Stack,ArrayDeque,LinkedList都可以作为栈使用,所以就稍微从性能以及实现的细节对比这三者的区别。类继承树       由继承树看出,三者都是Collection的间接实现类。&

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

       这段时间把疯狂JAVA再看了一遍,发现Stack,ArrayDeque,LinkedList都可以作为栈使用,所以就稍微从性能以及实现的细节对比这三者的区别。

类继承树

Collection继承树
       由继承树看出,三者都是Collection的间接实现类。
       ArrayDeque实现Deque接口,Stack继承于Vector,LinkedList实现Deque与List接口。

区别

底层数据存储方式

  存储方式
Stack 长度为10的数组
ArrayDeque 长度为16的数组
LinkedList 链表

方法参照表

Stack ArrayDeque LinkedList
push(e) addFirst(e)/offerFirst(e) addFirst(e)/offerFirst(e)
pop() removeFirst()/pollFirst() removeFirst()/pollFirst()
peek() getFirst()/peekFirst() getFirst()/peekFirst()

线程安全

  线程安全
Stack 线程同步
ArrayDeque 线程不同步
LinkedList 线程不同步

性能选项

     通常情况下,不推荐使用Vector以及其子类Stack

1.需要线程同步

    使用Collections工具类中synchronizedXxx()将线程不同步的ArrayDeque以及LinkedList转换成线程同步。

2.频繁的插入、删除操作:LinkedList

3.频繁的随机访问操作:ArrayDeque

4.未知的初始数据量:LinkedList

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/191573.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 信捷plc梯形图实例详解_信捷plc单键启停梯形图

    信捷plc梯形图实例详解_信捷plc单键启停梯形图一直以来都是作为新手在学习PLC,对于PLC编程,每个人都应该觉得自己是新手,只有心态放低,才能把事情看得更清楚,才能将编程的原理了解深透。就拿PLC一键启停编程梯形图来说,PLC种类很多,每个种类对应的编程或多或少有些差异,那么掌握一种一键启停梯形图编程是不是可以应用到其他种类的PLC呢?分享台达PLC的常见一键启停编程梯形图根据最近网友向我我请教的一个PLC单键启停如何编写程序,PLC外部接线…

    2025年10月24日
    4
  • 深圳IT外包公司名单汇总

    深圳IT外包公司名单汇总开科唯识汉克时代拓维云创旭阳软件赛意信息金证股份博颜科技得逸信息新致软件兴融联通通互联信必优易宝长亮科技紫川软件文思海辉东软睿服科技拓保软件联龙汉克润和三丈信息信达体育文化京北方佰钧成亿达新致华云信息纬创软件合生科技海万信息Pactura维沃法本德科中软国际软通动力大展科技天阳博奥特先进数通融安易立德人瑞云盈网络中科软科锐国际湃腾点点新致煜象科技泛鹏天地…

    2022年6月3日
    100
  • 利用ADB命令强制卸载oppo自带浏览器

    利用ADB命令强制卸载oppo自带浏览器

    2020年11月19日
    659
  • main(argc,argv)中参数含义_c语言int char

    main(argc,argv)中参数含义_c语言int char这篇文章主要介绍了C语言中intmain(intargc,char*argv[])的两个参数详解的相关资料,需要的朋友可以参考下:转载自:https://www.jb51.net/article/107168.htm        https://www.cnblogs.com/ruixingw/p/3705918.htmlC语言中intmain(inta…

    2025年6月3日
    5
  • C++学习——int、long、long long, double, long double等的占用空间及取值范围「建议收藏」

    C++学习——int、long、long long, double, long double等的占用空间及取值范围「建议收藏」unsigned int 0~4294967295int 2147483648~2147483647unsigned long 0~4294967295long 2147483648~2147483647long long的最大值:9223372036854775807long long的最小值:-9223372036854775808unsigned long lon…

    2022年8月18日
    16
  • 细说java_java barrier

    细说java_java barrier今天来说说cloneable,java中创建对象除了使用new关键字,反射,还有一种方式就是clone。有一个设计模式叫原型模式,用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象,简单的说就是clone一个对象实例,使得clone出来的对象和原有的对象一模一样,两个对象相互不影响。什么时候使用clone呢,clone又存在哪些问题?  1.clone的使用场景…

    2022年10月14日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号