(注意:本文源码基于JDK1.8)
基本介绍
LinkedList实现了List接口、Deque接口,Deque接口继承了Queue接口,List接口表示具备线性表的能力、Deque接口表示具备双端队列的能力,Queue接口表示队列的能力,所以LinkedList添加元素、删除元素的方法非常多……LinkedList为全能型线性表,LinkedList的底层数据结构为双向链表,非线程安全,无法在多线程下使用!
注意:LinkedList可以作为下方任意一个,想让LinkedList做什么就做什么
1、它可以做普通的List
2、它可以做栈
3、它可以做队列
4、它可以做双端队列(两端都可以添加和删除元素)
添加元素的方法
1、作为普通列表
2、作为栈
3、作为队列
4、作为双端队列
void addFirst(E e);
void addLast(E e);
boolean offerFirst(E e);
boolean offerLast(E e);
boolean add(E e);
boolean offer(E e);
删除元素方法
1、作为普通列表
2、作为栈
E pop();
3、作为队列
E remove();
E poll();
4、作为双端队列
E removeFirst();
E removeLast();
E pollFirst();
E pollLast();
boolean removeFirstOccurrence(Object o);
boolean removeLastOccurrence(Object o);
5、清空全部元素
后面意思是重写了AbstractList的clear()方法
修改元素功能
查找元素功能
1、作为普通列表的方法
E get(int index);
int indexOf(Object o);
int lastIndexOf(Object o);
2、作为栈的方法
E peek();
3、作为队列的方法
E element();
E peek();
4、作为双端队列
E getFirst();
E getLast();
E peekFirst();
E peekLast();
遍历元素功能(任选一个方式)
1、迭代器
2、普通for循环
3、for each