List中的LinkedList(类)
- 首先LinkedList底层是基于链表的一个集合,它维护了元素插入的顺序;
- 实现了Queue、Deque接口;
- 线程不安全;
- 适当删除操作,因为删除不会发生移位;
- 可以包含重复的元素。
LinkedList中常用的方法:
方法名: 方法的意义:
增加方法:
addFirst(E e) 增加方法,向链表头部增加元素
addLast(E e) 增加方法,向链表尾部增加元素
offer(E e) 添加方法,添加元素在尾部
offerFirst(E e) 添加方法,添加元素在头部
offerLast(E e) 添加方法,添加元素在尾部
删除方法:
poll() 删除方法:默认删除链表中的第一个元素
pollFirst() 删除方法:删除链表中的第一个元素
pollLast 删除方法:删除链表中最后一个元素
remove() 删除方法:默认删除链表中第一个元素
removeFirst() 删除方法:删除链表中的第一个元素
removeLast() 删除方法:删除链表中的最后一个元素
修改方法:
查看方法:
element() 默认查看链表中第一个元素
getFirst() 查看链表中第一个元素
getLast() 查看链表中最后一个元素
indexOf(Object o) 查看链表中元素的索引,要是传入的元素链表中没有,则返回-1
LastIndexOf(Object o) 查看链表中元素的索引,要是传入的元素链表中没有,则返回-1
peak() 查看链表中第一个元素
peakFirst() 查看链表中第一个元素
peakLast() 查看链表中最后一个元素
注意:这么多方法好像都是重复了,其实有不同的;拿删除来说,其中removeFirst()和pollFirst()都是删除链表中第一个元素,有什么不同呢?
-
removeFirst():它是老版本的,只要删除链表中不存在的数据,就会出现异常。
-
pollFirst():它是从JDK1.6版本开始使用的,它删除的元素要是链表中不存在的话,不会报异常.(推荐使用~)
LinkedList集合的使用
package zhai.linkedlist;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;
// LinkedList(实现类):也是List接口下的一个实现子类,它和ArrayList并列
public class LinkedListDemo1{
public static void main(String[] args) {
LinkedList<String> linkedList = new LinkedList<>();
linkedList.add("zhangsan");
linkedList.