来说说Arraylist与LinkedList区别

Arraylist与LinkedList区别有:1、数据结构不同;2、空间灵活性;3、安全性不同;4、效率不同;5、主要控件开销不同。ArrayList是Array(动态数组)的数据结构,LinkedList是Link(链表)双向链表的数据结构。arraylist可以直接通过数组下标找到元素。

来说说Arraylist与LinkedList区别-Worktile社区

1、数据结构不同

ArrayList是Array(动态数组)的数据结构,LinkedList是Link(链表)双向链表的数据结构。arraylist可以直接通过数组下标找到元素。linkedlist要通过移动指针遍历每个元素,直到找到需要的元素为止。arraylist查找元素的速度比linkedlist快。

2、空间灵活性

ArrayList其实较好需要指定初始容量的(当然有些程序员为了偷懒,根本不会去初始化,这其实对于代码质量低的项目而言是无关紧要的)《1.其实在代码规范里,都要手动设置,只是我们用默认而已,如果公司用一些代码规范的工具来做代码质量,会要求写上的 2.如果只是产品达到一定的量,初始容量还是有好处的》

LinkedList是比ArrayList灵活的,是根本不需要指定初始容量的

3、安全性不同

从线程安全性来讲:ArrayList是线程不安全的,而LinkedList是线程安全的。

4、效率不同

当随机访问List(get和set操作)时,ArrayList比LinkedList的效率更高,因为LinkedList是线性的数据存储方式,所以需要移动指针从前往后依次查找。ArrayList对于数据查询非常快,但是插入与删除元素比较慢;

当对数据进行增加和删除的操作(add和remove操作)时,LinkedList是恰好相反的,它的查询速度非常慢,但是插入与删除元素的速度非常快。

5、主要控件开销不同

ArrayList主要控件开销在于需要在lList列表预留一定空间;而LinkList主要控件开销在于需要存储节点信息以及节点指针。

延伸阅读:

什么是Arraylist?

ArrayList就是动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了动态的增加和减少元素,实现了ICollection和IList接口,灵活的设置数组的大小等好处。

List接口的大小可变数组的实现,位于API文档的java.util.ArrayList<E>。实现了所有可选列表操作,并允许包括 null 在内的所有元素。除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小。(此类大致上等同于 Vector类,除了此类是不同步的。)

size、isEmpty、get、set、iterator 和 listIterator 操作都以固定时间运行。add 操作以分摊的固定时间 运行,也就是说,添加 n 个元素需要 O(n) 时间。其他所有操作都以线性时间运行(大体上讲)。与用于 LinkedList实现的常数因子相比,此实现的常数因子较低。

每个 ArrayList 实例都有一个容量。该容量是指用来存储列表元素的数组的大小。它总是至少等于列表的大小。随着向 ArrayList 中不断添加元素,其容量也自动增长。并未指定增长策略的细节,因为这不只是添加元素会带来分摊固定时间开销那样简单。

文章标题:来说说Arraylist与LinkedList区别,发布者:小编,转载请注明出处:https://worktile.com/kb/p/37910

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小编小编认证作者
上一篇 2023年2月13日 上午2:28
下一篇 2023年2月13日 上午2:30

相关推荐

  • 什么是java socket编程

    什么是Java Socket编程 在介绍Java Socket编程之前,先明确它是网络编程的一种技术,用于实现不同设备之间的数据交换。具体而言,1、它允许应用程序之间通过网络进行通信;2、基于TCP/IP协议实现可靠的连接;3、能够处理并发连接,适用于服务器和客户端模式的通信。对于其第二点,基于TC…

    2024年4月26日
    600
  • 研发项目激励管理

    响应研发项目激励管理的主题,有效的激励机制能够提高研发团队的工作积极性,并促进项目的成功交付。1. 物质激励及其作用、2. 精神激励的不可忽视、3. 绩效评估对激励的影响、4. 激励政策的适时调整、5. 激励管理的长期规划 都是不可或缺的组成部分。物质激励 包含了薪资奖金、期权股票和福利待遇等方面,…

    2024年1月10日
    45800
  • Jira中创建敏捷看板的步骤

    JIRA中构建敏捷看板的要领涵盖:设置项目类型、配置看板、添加任务与故事、定制列与泳道、应用快速过滤器、设定工作流、维护看板。详尽介绍中将深入探讨这些步骤及其相互关系。 在构建敏捷看板时,设置项目类型作为第一步是本质上重要的。设置确保了项目的基本框架和未来规划与扩展的可能性。项目类型通常分为敏捷软件…

    2024年1月3日
    40400
  • 什么是项目控制

    项目控制是指项目管理者根据项目跟踪提供的信息,对比原计划(或既定目标),找出偏差,分析成因,研究纠偏对策,实施纠偏措施的全过程。所以项目控制过程是一种特定的,有选择的,能动的动态作用过程。 项目控制是指项目管理者根据项目跟踪提供的信息,对比原计划(或既定目标),找出偏差,分析成因,研究纠偏对策,实施…

    2023年1月17日
    52200
  • 产品管理的目的是什么

    产品管理的目的主要有四个,分别是:1.提高产品的质量;2.提高产品竞争力;3.降低产品风险;4.扩大产品市场份额。产品管理需要系统化的方法和流程,其主要目标是实现长期的顾客满意及产品竞争优势。 1.提高产品的质量 产品管理的目的之一就是提高产品质量,从而满足市场、法规对其提出的要求,例如产品实用性、…

    2022年11月16日
    1.1K00
  • 数据库为什么要分左连接和右连接呢

    原因是:左连接和右连接的选择取决于需要查询的数据和查询的目的。如果需要查询主表中的所有数据以及与之匹配的次要表数据,则应该使用左连接。如果需要查询次要表中的所有数据以及与之匹配的主表数据,则应该使用右连接。 在数据库中,连接是指将两个或多个表中的数据组合成一个结果集的操作。左连接和右连接是连接操作中…

    2023年5月30日
    78700
  • 汇编语言与机器语言的区别是什么

    汇编语言与机器语言的区别在于以下几个方面:1、效率;2、组成;3、面向类型;4、特点不同。效率是指,机器语言的执行效率高,速度快,而汇编语言的编程效率不高,属低级语言。 一、效率 机器语言:执行效率高,速度快; 汇编语言:编程效率不高,属低级语言; 高级语言:执行效率不及机器语言,但编程效率高于汇编…

    2023年2月21日
    3.6K00
  • WiredTiger和RocksDB内部实现和性能有什么区别

    WiredTiger与RocksDB作为现代数据库引擎,它们在结构设计、性能特征以及应用场景上存在显著差异,主要体现在其储存模型、并发控制、事务支持和写放大问题。WiredTiger采用了多版本并发控制(MVCC)机制,能够提供较好的读取性能和事务支持。1、WiredTiger的存储模型基于列存储和…

    2023年11月16日
    38400
  • oa系统有那些家

    OA系统包括的主要功能模块有:办公自动化、移动办公应用、报表系统和协同办公四个方面。这些功能模块各自承担着不同的业务流程,助力员工高效完成日常工作。办公自动化模块通常涵盖了文档管理、电子邮件、日历计划等功能,易于员工信息的存取和时间的规划。另外,一些OA系统还侧重于报表的生成和数据分析。 一、办公自…

    2024年1月12日
    22100
  • 为什么代码质量很重要

    为什么代码质量很重要:1、增强代码可读性;2、提高程序可持续性水平;3、提高可转移性;4、降低与程序或软件相关的成本;5、提高代码安全性。代码可读性很重要,这可以提高其他开发人员对代码的理解率。易于阅读的代码也易于改进。 一、什么是代码质量 代码质量是指软件代码的编写和可维护程度。它包括可读性、效率…

    2023年6月3日
    54000

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部