数组(Array)和列表(ArrayList)有什么区别?

数组(Array)和列表(ArrayList)有什么区别?

Array和ArrayList的不同点:

  • Array可以包含基本类型和对象类型,ArrayList只能包含对象类型
  • 数组中是可以间隔存null的,而ArrayList是做不到这一点的。
  • Array大小是固定的,ArrayList的大小是动态变化的,ArrayList每次存储时会检查空间大小,不够时会扩充为原来的1.5倍
  • ArrayList是List的实现类,具有更多可操作的方法,ArrayList提供了更多的方法和特性,比如:addAll(),removeAll(),iterator()等等。
  • 对于基本类型数据,集合使用自动装箱来减少编码工作量。但是,当处理固定大小的基本数据类型的时候,这种方式相对比较慢。

空间大小比较:

  • 数组Array它的空间大小是固定的,空间不够时也不能再次申请,所以需要事前确定合适的空间大小。
  • ArrayList默认长度为10,当你插入值时,会先检查空间,如果不足,则扩充原来的1.5倍。扩充时会创建一个1.5倍的数组,然后复制原来的数据到新数组,摒弃旧数组(比较麻烦的地方)。

适用场景:

  • 当数据长度不变时,尽量使用Array。
  • 当长度不固定时,使用ArrayList,另外,如果需要频繁增加数据时,可预设ArrayList的长度,因为这样减少了复制数组的损耗。
  • 如果我们需要对元素进行频繁的移动或删除,或者是处理的是超大量的数据,那么,使用ArrayList就真的不是一个好的选择,因为它的效率很低,使用数组进行这样的动作就很麻烦,那么,我们可以考虑选择LinkedList。

参考博客:
[1] 数组(Array)和列表(ArrayList)有什么区别?什么时候应该使用Array而不是ArrayList?

  • 5
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值