栈、队列一网打尽

177 阅读1分钟

图片2.png

1. Stack栈:继承与Vector线程安全,不建议使用

  • push添加
  • pop返回并移除
  • peek返回但不移除
  • isEmpty判断是否为空

2. Queue单端队列

  • offer添加       add失败会抛异常
  • poll返回并移除    remove失败会抛异常
  • peek返回但不移除   element失败会抛异常
2.1 PriorityQueue:有比较器,队列元素按大小重新排序
2.2 Deque双端队列:继承Q,所以除了Q的方法,还有如下方法
  • offerFirst/Last   addFirst/Last
  • poolFirst/Last   remoneFirst/Last
  • peekFirst/Last   peekFirst/Last getFirst/Last
  • descendingIterator() 返回迭代器
  • removeFirst/LastOccurrence(Object o)删除第一次出现的O
2.2.1 ArrayDeque:数组实现。适合少改多查
2.2.2 LinkedList:双向链表实现。适合多改少查

应优先使用双端队列Deque接口,而不是用遗留的栈Stack类,因为颗粒太大