Java ArrayList与LinkedList数据结构和特点

Java ArrayList与LinkedList数据结构和特点

1. ArrayList

数据结构:

  1. ArrayList低层是实现的是一个Object类型的数组(空间连续,类型相同)
  2. 当我们调用ArrayList无参构造方法,将会创建一个Object类型的****数组
  3. 当我们第一次添加元素的时候,数组的长度会被修改为10
  4. 后续添加元素,如果数组长度不够则扩容,扩容为原数组的1.5倍

特点:有序,可重复,允许元素为null

  1. 查询,修改快:可以通过下标一次查询定位元素,所以效率高
  2. 增加,删除慢:数组的空间是连续的,移动某个元素时,其余大部分数组也会移动,所以效率低
  3. 线程不安全

2.LinkedList

数据结构:

  1. LinkedList低层是双向链表,链表中的每一个元素称呼为一个Node(节点),每个Node包含三部分:上个元素的引用、下一个元素的引用、当前元素本身

特点:有序,空间不连续,允许元素为null,允许重复,线程不安全

  1. 增加,删除快:不需要移动元素(改变引用指向),也不需要扩容(改变引用指向),因此效率较高
  2. 查询,修改慢:因为链表不能直接定位到某个元素,必须找到相邻的元素,所以查询效率低,同理修改效率也低

注意:get(int index)方法中,对下标查询做了优化,如果是大于等于长度,则从后往前找,否则从前往后找,以提高查询效率,但是依然很慢

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/529265.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多线程 循环 锁_大多数人还不清楚的iOS多线程

你不知道的的 iOS 多线程程序员用有限的生命去追求无限的知识。有言在先首先我不是故意要做标题党的,也不是我要炒冷饭,我只是想换个姿势看多线程,本文大部分内容在分析如何造死锁,奈何功力尚浅,然而再浅,也…

Java HashMap与Hashtable数据结构和特点+HashSet简述

Java HashMap与Hashtable数据结构和特点HashSet简述 1.HashMap HashMap就是基于数组和链表的数据结构:JDK1.7使用 数组单向链表;JDK1.8使用 数组单向链表红黑树 HashMap有两个重要的参数: 一个是负载因子 0.75:表示数组使用率达…

aj6 stamps storm_亲友限定的 AJ 6 要发了?3 月好鞋发售清单 for girls

原标题:亲友限定的 AJ 6 要发了?3 月好鞋发售清单 for girls🌸🌸🌸Air Jordan 1 Low Slip “Chicago”Color:Varsity Red/Black/WhiteStyle Code:BQ8462-601Price:$110adidas WMNS U…

学校为什么要单位接收函_学校、小区运动场为什么要选择塑胶跑道

随着人们生活水平的不断提高,科技的日新月异,各行各业都向着更加健康环保安全舒适的方向迈进。就拿小区、学校的运动场所地坪为例,传统的“沙土跑道”已经被运动塑胶跑道所替代。那么运动场为什么会选择塑胶跑道呢? 塑胶跑道又称全…

java中常见的专业术语单词缩写,看你认识几个

java中常见的专业术语单词缩写,看你认识几个 单词全称单词缩写中文意思备注Garbage CollectionGC垃圾回收Object Oriented ProgrammingOOP面向对象程序设计Document Object ModelDOM文档对象模型Browser Object ModelBOM游览器对象模型uniform resource locatorurl…

pitstop插件使用说明_【学员分享】程序员效率神器,最常用VIM插件安装大全

相信大家多次被推荐用vim作为编辑程序,知道vim编辑有很多优点,但是vim初始界面太原始了,安装了之后只能用来编辑,如果要运行就需要退出去运行,麻烦死了。回想用现成的IDE是多么的舒服。但是为了更好的学习,…

JVM思维导图、正则表达式符号图、企业内部开发流程图

JVM思维导图、正则表达式符号图、企业内部开发流程图 1.JVM思维导图: 2.正则表达式符号图: 3.企业内部开发流程图:

萧县机器人_全国总决赛第一名!萧县杨楼的这位学生厉害了

 提示:点击上方"萧县关注"↑免费订阅本刊点击上方关注我们,免费订阅更多精彩内容&…

关于JSP页面无法加载css,游览器访问jsp页面样式未生效导致乱序

关于JSP页面无法加载css,游览器访问jsp页面样式未生效导致乱序 1.修改自己过滤器中对编码格式的修改 如图: 代码如下: public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOE…

将视图转为image_JavaScript二进制数组(2)TypedArray视图

ArrayBuffer对象作为内存区域可以存放多种类型的数据。同一段内存,不同数据有不同的解读方式,这种解读方式称为“视图(view)”。ArrayBuffer有两种类型的视图,一种是类型化数组视图(TypedArray)…

八大基本数据类型、数组和包装类默认值

八大基本数据类型、数组和包装类默认值 1.八大基本数据类型 Java八种基本数据类型总结序号数据类型大小/字节封装类默认值可表示数据范围1byte1Byte0-128~1272short2Short0-32768~327673int4Integer0-2147483648~21474836474long8Long0-9223372036854775808~9223372036854775…

解决IDEA中maven工程的jsp、jstl依赖导入了 ,但是 jsp页面的uri却不提示(手动输上也报红)

解决IDEA中maven工程的jsp、jstl依赖导入了 ,但是 jsp页面的uri却不提示(手动输上也报红) 出现原因:idea内有缓存 解决办法:File --> Invalidate Caches / Restart… --> lnvalidate and Restart idea版本&#…

空格 过滤多个_CAD选择过滤器的运算符如何使用?

选择过滤器FILTER在CAD早期版本中是扩展工具的一个功能,到了高版本变成标配的功能,但在浩辰CAD的菜单或工具面板中我还找到选择过滤器的命令。浩辰CAD面板、右键菜单和特性面板倒是都提供了快速选择的功能,快速选择功能应该是借鉴选择过滤器开…

Java中各种常见的生命周期

Java中各种常见的生命周期 1.Spring bean的生命周期? ​ 1、Spring 容器根据配置中的 bean 定义中实例化 bean。 ​ 2、Spring 使用依赖注入填充所有属性,如 bean 中所定义的配置。 ​ 3、如果 bean 实现 BeanNameAware 接口,则工厂通过传…

各层作用_终于弄明白了 Singleton,Transient,Scoped 的作用域是如何实现的

一:背景1. 讲故事前几天有位朋友让我有时间分析一下 aspnetcore 中为什么向 ServiceCollection 中注入的 Class 可以做到 Singleton,Transient,Scoped,挺有意思,这篇就来聊一聊这一话题,自从 core 中有了 S…

权限管理系统_在Gitee狂揽11K Star!这个SpringCloud的权限管理系统你必须知道

SpringCloud 大家都很熟悉了,它作为一套完整的微服务解决方案,广受 Java 开发者们的好评, 今天就为大家介绍一款 Gitee 上的王牌项目,基于 SpringCloud 的权限管理系统——Pig。项目名称:Pig项目作者:pig4c…

导出排除的表_excel拆分实例:如何快速制作考勤统计分析表

编按:面对新的统计需求,很多人会一下变懵,不知如何办。如果涉及的统计有一千多行数据,哭的心思都有了:什么时候才能下班哟!今天老菜鸟通过考勤统计分析表实例分享自己面对新统计需求的解决方法:…

rds 如何学习数据库_如何将本地数据库迁移到云数据库 RDS 上?

使用数据传输服务 ( DTS ) 将本地数据库迁移到 阿里云的云数据库 RDS ,可以实现应用不停服务的情况下,平滑完成数据库的迁移工作。接下来我们将学习下如何使用 DTS 将本地数据库迁移到 RDS 上。背景DTS 支持 SQL Server 数据结构迁移和全量迁移。DTS 支持…

arm ida 伪代码 安卓 符号表_IDA 制作 sig文件 gdb 导入符号表

背景最近比赛遇到了一个题目, 32位静态链接去符号了. 所以用IDA分析的时候很多libc的库函数都无法识别, 就需要在 IDA 中引入 sig 文件. 从而可以识别诸如 read, write, malloc, free 这些库函数. 虽然网上已经有很多制作好的sig文件, 但是还是应该学会自己制作sig文件以备不时…

lua如何打印行号_LUA教程错误信息和回跟踪(Tracebacks)-34

虽然你可以使用任何类型的值作为错误信息,通常情况下,我们使用字符串来描述遇到的错误。如果遇到内部错误(比如对一个非table的值使用索引下标访问)Lua将自己产生错误信息,否则Lua使用传递给error函数的参数作为错误信息。不管在什么情况下&a…