publicEremoveFirst(){finalNode<E> f = first;if(f ==null)thrownewNoSuchElementException();returnunlinkFirst(f);}publicEpop(){returnremoveFirst();}publicEpoll(){finalNode<E> f = first;return(f ==null)?null:unlinkFirst(f);}publicEpollFirst(){finalNode<E> f = first;return(f ==null)?null:unlinkFirst(f);}publicEpollLast(){finalNode<E> l = last;return(l ==null)?null:unlinkLast(l);}
2.3 获取队列元素
api名称
作用
备注
get(int index)
获取指定下标的元素
会有下标越界的错误
peek()
获取栈顶的元素
如果没有元素返回null
getFirst()
获取栈顶的元素
如果没有元素会抛错
element()
获取栈顶的元素
底层调用的是getFirst()
getLast()
获取栈底的元素
没有元素会抛错
publicEget(int index){checkElementIndex(index);//检查下标是否越界returnnode(index).item;}publicEpeek(){finalNode<E> f = first;return(f ==null)?null: f.item;//如果首节点是null,返回null}publicEgetFirst(){finalNode<E> f = first;if(f ==null)thrownewNoSuchElementException();return f.item;}publicEelement(){returngetFirst();}publicEgetLast(){finalNode<E> l = last;if(l ==null)thrownewNoSuchElementException();return l.item;}
2.3 其他常用api
api名称
作用
备注
size()
获取队列大小
isEmpty()
判断队列是否为空
contains(Object obj)
判断队列是否有指定元素
返回true或者false
indexOf(Object obj)
返回指定元素第一次出现的下标
不存在返回-1
lastIndexOf(Object obj)
返回指定元素最后一次出现的下标
没有返回-1
clear()
清空队列中的元素
set(int index, E e)
替换指定下标的元素
返回被替换的元素,会有下标越界的情况
3. 简单demo实验
3.1 为了避免出错,常用的api
publicstaticvoidmain(String[] args){//队列从左往右分别是队尾和队首,下标从右往左开始计算LinkedList<String> queue =newLinkedList<>();//栈顶添加数据(不会报错,无返回值)
queue.push("1");//栈底添加数据(不会报错, 默认返回ture)
queue.add("2");//弹出栈顶元素(如果栈为空,则返回null)String first = queue.poll();//弹出栈底元素(如果栈为空,则返回null)String last = queue.pollLast();//查询栈顶的元素(如果栈为空,则返回null)String first2 = queue.peekFirst();//查询栈底的元素(如果栈为空,则返回null)String last2 = queue.peekLast();}