今天,让我们一起走进ArrayList类,了解ArrayList类背后的故事
ArrayList类:
-
逻辑结构:首先我们要知道ArrayList类是实现了List接口,而
List接口又继承了Collection接口。正是由于接口和继承的使用,使ArrayList类具有强大的能力和丰富的功能。 -
特点:①有序性 ②允许重复
-
存储结构:内部利用了Object[]数组进行对元素的存储;
-
用处:ArrayList类对集合可以进行一系列操作(类似于Array类对数组进行一系列操作),并且由于存储结构的特点,相当于集合为加强版的数组(提供了比数组更多的操作)。
集合和数组的区别
1.集合比数组更为方便,并且提供了更多的操作。
2.数组长度固定,集合可以对长度进行扩容
3.数组运行速率较快,集合运行速率较慢(集合在数组外加了一系列逻辑相关的操作)
初始化(引用+创建)
1.非泛型:
ArrayList list=new ArrayList()
list.add("小明");
list.add(23) ; //可以添加任何类型值
可以创建任何Object子类元素集合。
2.泛型:
ArrayList<String> list01=new ArrayList<String>();
list01.add("小飞");
//list01.add(23) ; //不能为除String类型之外的任何类型
利用泛型创建集合对象,则类型为指定的泛型,不能使用其他类型。
注:当为无参构造时,传入的值为默认空数据,则不创建数组,只有进行一次添加元素时,才使传入值大于默认空数据,从而创建数组。
常见方法
-
add()
用处:向集合中添加指定元素
参数:指定泛型的值
返回:boolean类型的值
注:默认添加的值都放于集合最后面 -
addAll()
用处:将一个集合的所有元素全部添加到另一个集合
参数:Collection下的子类型
返回:boolena类型的值 -
get()
用处:根据指定下标,得到该下标所对应的集合元素
参数:int类型的index下标
返回:集合中的元素 -
size()
用处:返回当前集合中元素的个数
参数:无
返回:int类型的值 -
contains()
用处:判断元素是否在该集合中
参数:集合中的值
返回:boolean类型的值,有返回true,否则返回false -
indexOf()
用处:查找集合内指定元素的位置
参数:集合中的指定元素
返回:存在返回当前指定元素下标,不存在返回-1