首先讲一讲关于数组ArrayList
固定的数组格式: int[] arr=new int[10]; // 长度为10的数组
一般在构建一个数组时需要构造一个常数长度大小,如果在后期数组长度不够用的话,就需要在创建一个数组来进行拷贝。
数组需要初始化。
动态扩容数组具体代码:
//需要定义一个数组
public Object[] arr=new Object[8];
private int size;//数组长度
//添加
public void add(E e){
//先建立一个数组
Object[] newarr=new Object[arr.length+1];
//进行遍历
for (int i=0;i<arr.length;i++){
newarr[i]=arr[i];
}
newarr[arr.length]=e;
//更新原数组地址
arr=newarr;
size++;
}
//添加到具体位置
对于数组来说,增删改查的功能都是需要遍历数组里的数据才可以进行更迭替换。
链表LinkList
-
List类的属性:
- 存储容器:数组
- 长度
- 下标
-
List类的方法:
- 添加元素:
- 添加到最后
- 添加到最后一个 发现 满了就需要扩容
- 删除元素:
- 删除最后一个,下标需要修改
- 删除指定下标的元素,后面的元素需要前移
- 查找元素:
- 根据下标查找
- 根据元素查找
- 添加元素:
具体实现代码:
简单写一个方法
public void add(E e) {
Node newNode = new Node(e);//新建立的节点
Node head = root.next;
if (head == null) {
head = newNode;
last = newNode;
} else {
last.next = newNode;
last = newNode;
}
size++;
}