目录
1.线性表
2.顺序表
3.ArrayList简介
4.ArrayList的使用
4.1ArrayList的构造方法
4.2ArrayList的常用操作
4.3ArrayList的遍历方法
4.4ArrayList的扩容机制
5.ArrayList的具体运用
ArrayList是一种基于数组的数据结构,是线性表的一种,也是顺序表。
1.线性表
通俗来说,线性表是一种线性结构,在逻辑上连续,但物理上不一定连续的结构(链表就是逻辑上连续,但物理存储上不连续的数据结构)
2.顺序表
顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般采用数组存储,在数组上实现增删改查
3.ArrayList简介
首先我们可以了解ArrayList中继承的类和实现的接口
下面简单的介绍一下上面几个接口或类:
- Serializable接口:实现了此接口的子类标明了该子类是可序列化的,其作用为更好的保存和修改数据
- Cloneable接口:表示了其是可以clone的
- Iterable接口:表示了其可以迭代其元素
- Collection接口:是一个集合接口,它提供了对集合对象进行基本操作的通用接口方法
- LIst接口:表示其为一个有序集合
- 最后一个是RandomAccess接口:表明了其支持随机访问
- ArrayLisy是以泛型方式实现的,使用时必须先实例化。
4.ArrayList的使用
4.1ArrayList的构造方法
*第二个构造方法可以将Collection对象转化为ArrayList,并创建出一个新的对象
4.2ArrayList的常用操作
方法 | 解释 |
boolean add(E e) | 尾插 e |
void add(int index, E element) | 将 e 插入到 index 位置 |
boolean addAll(Collection<? extends E> c) | 尾插 c 中的元素 |
E remove(int index) | 删除 index 位置元素 |
boolean remove(Object o) | 删除遇到的第一个 o |
E get(int index) | 获取下标 index 位置元素 |
E set(int index, E element) | 将下标 index 位置元素设置为 element |
void clear() | 清空 |
boolean contains(Object o) | 判断 o 是否在线性表中 |
int indexOf(Object o) | 返回第一个 o 所在下标 |
int lastIndexOf(Object o) | 返回最后一个 o 的下标 |
List<E> subList(int fromIndex, int toIndex) | 截取部分 list |
4.3ArrayList的遍历方法
遍历方法共有三种,for循环,foreach,迭代器
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
// 使用下标+for遍历
for (int i = 0; i < list.size(); i++) {
System.out.print(list.get(i) + " ");
}
System.out.println();
// 借助foreach遍历
for (Integer integer : list) {
System.out.print(integer + " ");
}
System.out.println();
//迭代器
Iterator<Integer> it = list.listIterator();
while(it.hasNext()){
System.out.print(it.next() + " ");
}
System.out.println();
}
4.4ArrayList的扩容机制
ArrayList是一个动态类型的顺序表,在添加元素的过程中,如果列中元素已满会自动扩容
下面是对扩容代码源码的一点解释:
5.ArrayList的具体运用
(1条消息) [JAVA]洗牌ArrayList的举例运用_HY_PIGIE的博客-CSDN博客