LinkedList
1、链表是一种线性表,但不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的地址。LinkedList 类位于 java.util 包中,使用前需要引入它。与 ArrayList 相比较,LinkedList 的增加和删除的操作效率更高,而查找和修改的操作效率较低。
ArrayList部分点击可见:ArrayList
2、创建链表:LinkedList<E> list = new LinkedList<E>();
3、链表分为单向链表和双向链表
- 单向链表:一个单向链表包含两个值,当前节点的值和一个指向下一个节点的链接。
- 双向链表:一个双向链表有三个整数值,分别是数值、向后的节点链接、向前的节点链接。
常用方法:
- public boolean add(E e) 链表添加元素,返回boolean值添加成功为 true,失败为 false。
- public void add(int index, E element) 向指定位置插入元素。
- public void addFirst(E e) 元素添加到头部。
- public void addLast(E e) 元素添加到尾部。
- public boolean offerFirst(E e) 头部插入元素,返回boolean值,添加成功为 true,失败为 false。
- public boolean offerLast(E e) 尾部插入元素,返回boolean值,成功为 true,失败为 false。
- public boolean offer(E e) 向链表添加元素,返回boolean值,添加成功为 true,失败为 false。
- public boolean addAll(Collection c) 把一个集合的所有元素添加到链表后面,返回一个boolean,添加成功为 true,失败为 false。
- public boolean addAll(int index, Collection c) 把一个集合的所有元素添加到链表的指定位置后面,返回boolean,添加成功为 true,失败为 false。
- public E remove() / public E poll() 删除并返回第一个元素
- public E remove(int index) 删除指定位置元素
- public E get(int index) 返回指定位置元素
- public E getFirst() 返回第一个元素
- public E getLast() 返回最后一个元素
- public int indexOf(Object o) 查找指定元素第一次出现的位置
- public int lastindexOf(Object o) 查找指定元素最后一次出现的位置
- public E set(int index, E element) 设置指定位置元素
- public Object clone() 克隆该链表
- public int size() 返回链表元素个数
- public Object[] toArray() 返回由链表元素组成的数组
- public T[ ] toArray(T[ ] a) 返回一个链表元素转化成的数组
- public void clear() 清空链表