队列
1.Queen 队列,队尾进,队头出
Deque:双端队列
LinkedList:队列/双端队列,底层是双向链表
PriorityQueue:优先级队列,底层是二叉树,但具有队列的特性
2.Queue queue = new LinkedList<>();
add,offer返回值:boolean
queue.add( );//调用add方法 默认是队尾入队,满了的时候插入会抛出异常
queue.offer( );//调用offer方法 默认是队尾入队,满了的时候直接返回false
remove:删除
poll:弹出(尽量用poll) //
peek:得到队头元素且不删除
LinkedList linkedlist queue = new LinkedList<>();
linkedlist.addFirst( );//队头进
linkedlist.addLast( );//队尾进
循环队列:
1.front和rear相遇,到底是空还是满?
2.front和rear都面临一个问题:
rear+1越界
front+1越界
解决:
1.牺牲一个空间,来判断是否为满,判断当前rear的下一个是否为front
2.(rear+1)%len 是否等于front,若等于,则满
3.若要放k个元素,在构造方法中设置数组大小应为k+1