## LinkedList源码分析(一)
/*
LinkedList双向链表特征:
1. 存储数据,非连续空间。
2. 数据之间通过引用连接,方便遍历和使用
3. 遍历效率较低,数据非连续空间存储,需要通过引用跳转过程来完成。
4. 删除插入操作效率高,但是注意地址的转移和保存问题。
5. LinkedList链表当中的操作其实大部分都是和C语言指针一个概念
增删快:
增删快是每一个元素通过引用连接,添加元素或者删除元素,重新组建连接引用即可,效率较高,不
存在移动和扩容问题
查询慢:
双向链表结构存储数据非连续空间,需要在节点Node跳转完成数据查询过程,效率较低。
1.节点
a.向前的引用
b.存储元素的引用
c.向后的引用
class Node {
private Node prev;
private Node next;
Private Object value; ==> 存储元素
// 构造方法存储元素,进入链表
}
2.管理节点的LinkedList
a.链表头!
b.当前链表中有多少个元素!
class LinkedList<E> {
private Node first;
private int size;
}
要求实现的方法:
添加方法:
boolean add(E e);
boolean addFirst(E e);
boolean addLast(E e);
boolean add(int index, E e);
删除方法:
E remove(int index);
E removeFirst();
E removeLast();
void remove(Object obj);
修改方法:
E set(int index, E e);
查询方法:
E get(int index);
E getFirst();
E getLast();
int indexOf(Object obj);
int lastIndexOf(Object obj);
boolean contains(Object obj);
Object[] toArray();
List<E> subList(int start, int end);
*/
LinkedList源码分析(一)
最新推荐文章于 2024-09-01 15:30:33 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)