Java集合——Array、ArrayList、LinkedList
创始人
2024-12-13 23:05:33
0

1. ArrayList和Array的区别

1. 大小和自动扩容

Array:创建时指定大小,大小固定。若数组被创建,其大小不能更改

ArrayList:动态数组实现,可以动态增长或缩小。在不断添加元素时,ArrayList会自动进行扩容

2. 支持泛型

Array不支持泛型,ArrayList可以指定存储的元素类型

3. 存储对象

Array可以存储基本类型数据,也可以存储对象

ArrayList之恶能存储对象,对于基本类型数据需要使用对应的包装类(Integer、Double等)

4. 集合功能

Array是一个简单的数据结构,不提供额外的方法进行元素的增删改查操作

ArrayList是集合框架的一部分,提供了丰富的增删改查方法等

2. ArrayList和LinkedList的区别及其底层实现

ArrayList

基于动态数组,提供快速的随机访问和非常快的遍历操作

  1. 随机访问:时间复杂度为O(1)

  2. 增删元素:在末尾加元素很快,但在其他地方操作可能需要移动后续元素,时间复杂度O(n)

  3. 有扩容开销

使用场景:需要频繁访问元素,且增删操作主要在列表末尾进行,选择ArrayList

LinkedList

基于双向链表,每个元素包含前后元素的引用

  1. 随机访问:效率较低,因为需要从头或从尾开始链接遍历,复杂度为O(n)

  2. 增删元素:在列表任意位置增删元素都很快,这只需要改变几个引用指针,是O(1)复杂度

特殊方法:提供了额外的方法,如addFirst(),addLast(),removeFirst(),removeLast()

使用场景:需要频繁增删元素但访问不是那么常见,选择LinkedList

3. ArrayList扩容机制

  1. ArrayList初始化容量默认为10

  2. 添加元素到ArrayList时,ArrayList会判断是否达到了最大大小Integer.MAX_VALUE,若达到则不再扩容,否则扩容

  3. 扩容计算:grow()

  4. 若新容量满足需求,调用Arrays.copyof方法,实现扩容。若不满足,则新容量大小为当前所需的容量+1

相关内容

热门资讯

微信链接金花群房卡如何开/炸金... 金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:44346008许多玩家在游戏中会购买房卡来享受...
安卓手机系统在哪里设置,安卓手... 你有没有发现,安卓手机里的功能真是多得让人眼花缭乱?有时候,我们可能会在茫茫功能海中迷失方向,比如,...
链接金花房卡哪里买/有没有玩金... 金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:15984933许多玩家在游戏中会购买房卡来享受...
微信金花房卡链接如何购买/微信... 金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:160470940许多玩家在游戏中会购买房卡来享...
玩家攻略,金花房卡批发新下游/... 新下游/人皇大厅是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:【3329006910】或QQ:33...
微信链接牛牛房卡怎么弄/微信建... 斗牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:86909166许多玩家在游戏中会购买房卡来享受...
我来教你/牛牛房卡游戏代理上游... 我来教你/牛牛房卡游戏代理上游联盟/房卡链接怎么弄的Sa9Ix苹果iPhone 17手机即将进入量产...
安卓手机系统界面己停止,原因排... 你有没有发现,最近你的安卓手机系统界面突然变得有点不对劲?没错,就是那个你每天都要面对的屏幕,它好像...
微信金花房卡链接如何购买/微信... 金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:86909166许多玩家在游戏中会购买房卡来享受...
微信金花房卡怎么搞/微信炸金花... 微信炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:86909166许多玩家在游戏中会购买房卡...
微信斗牛房间怎么弄/微信斗牛房... 微信斗牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:15984933许多玩家在游戏中会购买房卡来...
一分钟了解“微信金花怎么玩哪里... 新道游是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:86909166许多玩家在游戏中会购买房卡来享...
安卓系统屏蔽低电量模式,如何应... 你有没有发现,最近你的安卓手机在电量不足的时候,突然变得特别“聪明”?它好像知道你不想让手机在关键时...
微信怎么创建金花房间/金花链接... 金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:15984933许多玩家在游戏中会购买房卡来享受...
炸金花房卡在哪有怎么购买/微信... 金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:160470940许多玩家在游戏中会购买房卡来享...
正版授权“哪里购买斗牛牛链接房... 人海大厅是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:160470940许多玩家在游戏中会购买房卡...
哪能购买微信金花房卡/可以自己... 金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:15984933许多玩家在游戏中会购买房卡来享受...
重大通报,牛牛房卡代理海贝大厅... 您好!微信海贝大厅/新天道大厅链接获取房卡可以通过以下几种方式购买: 1.微信渠道:(海贝大厅/新...
IA解析/金花房卡如何购买新猴... 今 日消息,新猴王/皇豪互娱房卡添加微信33549083 苹果今日发布了 iOS 16.1 正式版更...
iphone安卓gps定位系统... 你有没有发现,现在不管走到哪里,手机都能帮你找到方向?这都得归功于那个神奇的GPS定位系统呢!今天,...