LinkedList介绍
LinkedList使用示例:
LinkedList<Integer> linkedList = new LinkedList<>();
linkedList.add(12);
linkedList.add(23);
linkedList.add(45);
linkedList.add(23);
linkedList.add(null);
Iterator<Integer> iterator = linkedList.iterator();
while(iterator.hasNext()){
Integer value = iterator.next();
System.out.println(value);
}
具有特征:
- 1、数据插入有序
- 2、数据可重复
- 3、可以存储null
- 4、底层数据结构是双向链表
研究集合源码的思路:
1、继承关系
2、构造函数
3、扩容时机和扩容机制(LinkedList是双向链表,添加元素直接添加节点即可,不需要考虑扩容机制和时机等)
4、默认值或默认属性
5、底层数据结构
6、常用方法的研究
继承关系:
public class LinkedList<E>
extends AbstractSequentialList<E>
implements List<E>, Deque<E>, Cloneable, java.io.Serializable
AbstractSequentialList抽象类继承自AbstractList,该类对通用方法做了实现,linkedlist可以直接继承使用
实现接口:List、Deque、Cloneable、Serializable
Deque接口是队列的接口,提供了队列相应的方法
Deque提供了如下方法:
提供了从头、从尾的增删改查操作
构造函数:
//无参构造函数
public LinkedList