Java array和ArrayList_java面试题之《Array 和ArrayList的区别》

本文详细探讨了Java中Array和ArrayList的区别,包括长度的灵活性、数据存放类型、操作方法以及效率。Array长度固定,适合长度不变的情况;ArrayList长度可变,提供丰富的操作方法,但效率相对较低。在需要动态增长或减少元素时,ArrayList更为适用。同时,ArrayList只能存储对象,基本数据类型需转换为包装类。了解这些差异对于选择合适的数据结构至关重要。
摘要由CSDN通过智能技术生成

大家在刷java面试题时肯定有遇到过《Array 和ArrayList的区别》这个面试题。

今天就来聊聊他们二者的区别。

4837dfac21ecd04c68bc60ff1115522c.png

长度的区别

Array是数组,声明好之后,其长度就已经固定。

ArrayList底层是用数组实现的,但是ArrayList的长度是可变的,在每次添加时,如果发现空间不足的话,会创建一个长度大概是原来1.5倍的新数组(java8源码),然后把原来的数组元素复制过去。

Array就好像是已经定制好的柜子,就是那么多格子。

而ArrayList是可以自己组装的柜子,格子不够时,就再拼装一些。

d509caa05cf3beb961e13f37aec6f878.pngArrayList长度增长

存放数据的区别

Array可以除了可以存放对象类型的数据之外,还可以存放基本数据类型的数据。

而ArrayList只能存放对象数据类型的数据,因为它的类在定义时已经是针对Object的子类做了泛型的约束。

ArrayList如果确实要存放基本数据类型的数据,那只能存放基本数据类型对应的包装类的数据。在数据的存取时可能会涉及到java基本数据类型的自动装箱、自动拆箱。

使用方法的区别

Array数组只能通过数组下标来对指定位置的元素进行变更。

而ArrayList在Array的基础上增加了很多的方法。比如add,addAll,remove,removeAll,contains,以及iterator等等多种丰富的功能方法。

效率上的区别

因为ArrayList是在Array的基础上做了各种丰富多样的功能增强,所以ArrayList效率上自然是不如Array效率高了。

使用场景的区别

针对以上各种区别来说,如果是在整个过程中长度不会变化的话,可是使用Array数组。

如果在使用过程中,大小不固定,可能需要动态增长的话,就需要使用ArrayList了。

但是如果是频繁的增加删除元素的话,ArrayList就又显得不合适了。这块可以翻阅一下我的另一篇文章分析java面试题《ArrayList和LinkedList的区别》。

今天就到这里。大家有什么问题或意见建议都可以在留言里告诉我。

想学习更多的java知识技术,可以看看上面这本书。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值