链表
是一系列的存储元素的单元通过指针串接起形成的,因此每个单元至少有两个域,一个域用于数据元素的存储,另一个域是指向其他单元的指针。
单链表一个重要特性就是只能通过前驱节点找到后继节点,而无法从后继节点找到前驱节点
垃圾回收器:在一个链表中,我们想删除一个节点,其本质是修改它的指针指向,之后它变成了一个垃圾,被垃圾回收器收走。
初始化和添加操作
在指定位置添加一个元素
public void add(int i, Object e) {
// 异常处理
if(i<0||i>size){
throw new MyArrayIndexOutOfBoundsException("数据指针越界异常"+i);
}
// (查找功能)找到前一个节点,从head开始
Node p = head;
for (int j = 0; j < i; j++) {
p = p.next;
}
Node newNode = new Node(e);
newNode.data = e;
// 新节点的前驱节点
newNode.next = p.next;
// 新节点的后继节点
p.next = newNode;
size++;
}