目录
由于数组长度不可变的局限性,引入常见的容器ArrayList,类似于C++的vector(但是ArrayList不用声明存放的类型)。
import java.util.ArrayList;
- ArrayList对象不能存储基本类型,只能存储引用类型的数据。
- 一个ArrayList中可以存储多种类型数据
- 可以使用泛型<>限制ArrayList中的对象类型
ArrayList方法
添加 add
功能:给ArrayList添加元素
- 直接在末尾添加:
ArrayList对象.add(元素对象)
- 在指定位置添加:
ArrayList对象.add(3, 元素对象)
包含 contains
功能:判断是否包含该元素,返回boolean
ArrayList对象.contains(元素对象)
获取指定位置元素 get
功能:获取指定位置元素
ArrayList对象.get(3)
获取指定元素位置 indexOf
功能:获取指定元素在集合中的位置,没有则返回-1
ArrayList对象.indexOf(元素对象)
移除元素 remove
功能:移除指定元素对象
- 根据下标移除元素
ArrayList对象.remove(3)
- 根据对象移除元素
ArrayList对象.remove(元素对象)
替换指定位置元素 set
ArrayList对象.set(3, 元素对象)
获取ArrayList大小 size
ArrayList对象.size()
转换为数组 toArray
功能:将ArrayList转换为数组,需要传递一个要转换的数组类型的对象给toArray(),否则只能转换Object数组
把另一个ArrayList所有元素加进来 addAll
ArrayList对象.addAll(另一个ArrayList对象)
清空 clear
功能:清空一个ArrayList
ArrayList对象.clear()
List接口
List是一个接口,而ArrayList是List接口的一个实现类。
import java.util.List;
- ArrayList类继承并实现了List接口。
- 因此,List接口不能被构造,也就是我们说的不能创建实例对象,但是我们可以为List接口创建一个指向自己的对象引用,而ArrayList实现类的实例对象就在这充当了这个指向List接口的对象引用。
List heros = new ArrayList();
双向链表 LinkedList
多了addFirst()
和addLast()
方法
队列 Queue
LinkedList还实现了Queue接口
Queue<integer> I = new LinkedList<>(Integer);
- offer 在最后添加元素
- poll 取出第一个元素
- peek 查看第一个元素