Java数据结构-ArrayList
目录
- 1. 初识集合框架
- 2. ArrayList的介绍
- 3. ArrayList的使用
- 3.1 构造方法
- 3.2 add
- 3.3 addAll
- 3.4 remove
- 3.5 get
- 3.6 set
- 3.7 contains
- 3.8 IndexOf
- 3.9 lastIndexOf
- 3.10 subList
- 4. ArrayList的遍历
- 4.1 简单粗暴法
- 4.2 循环遍历法
- 4.3 迭代器
1. 初识集合框架
Java集合框架是Java编程语言提供的一组接口和类,用于存储和操作数据。它提供了各种类型的集合,如列表、集合、映射等,以及用于操作和管理集合的接口和类。
Java集合框架主要包括以下部分:蓝色代表接口,红色代表类,黄色代表抽象类
前面我们自己实现了一个顺序表:Java数据结构-顺序表,那么我们每次想要使用这个数据结构的时候,都需要自己实现一遍吗?不需要!Java给我们提供了ArrayList这个类,我们使用它就好了!
2. ArrayList的介绍
ArrayList是集合框架中的一个泛型类,可以存储任意的数据,使用可以传递类型,它实现了List接口,ArrayList的本质其实是一个数组。ArrayList使用方法有两种:
ArrayList arr = new ArrayList(); List list = new ArrayList();
这两个区别在于:List是一个接口,ArrayList是一个类,因为ArrayList实现了List接口,所以List中有的方法arr都可以调用,并且arr还能调用ArrayList独有的方法。所以ArrayList能调用的方法更多
3. ArrayList的使用
下面列举了一些ArrayList的常用方法
3.1 构造方法
ArrayList的构造方法有3个
第一个:不带参数的构造方法
可以看出,调用不带参数的构造方法时,并没有给数组分配内存,数组长度是0
第二个:带一个整型类型参数的构造方法
initialCapacity表示初始容量,也就是说,我们可以通过参数来指定数组的大小
第三个:
这个参数有点奇怪,它表示:只要是Collection本身或者实现了Collection接口的都能进行传递
举个例子:
从LinkedList第一张图可以看到,LinkedList是实现了Collection接口的,所以下面代码中list也能作为参数传递给ArrayList,这样可以把list中所有的数据全部添加到arr1中
public static void main(String[] args) { LinkedList list = new LinkedList(); list.add(100); ArrayList arr1 = new ArrayList(list); arr1.add(99); System.out.println(arr1); }
3.2 add
add方法的功能:在顺序表的末尾添加数据
add的原理:如果说,实例化ArrayList,调用不带参数的构造方法时,没有分配内存,数组长度是0,那么add是如何添加的?来看源码:
总结:调用不带参数的构造方法,第一次add时,会给数组分配大小为10的内存,如果容量不够,会自动扩容1.5倍
3.3 addAll
将指定集合的所有元素插入列表,可以指定插入位置,如果不指定默认是尾插
原型:
public boolean addAll(int index, Collection
还没有评论,来说两句吧...