java中的Queue队列的用法
大家好,歡迎來到雄雄的小課堂,今天給大家分享的是“java中的Queue隊列的用法”
前言:好多人對Queue不是很熟悉,畢竟平時也不怎么用,遇到集合要么List要么map這些常用的,殊不知,java中還有個Queue,今天,我們就來看看Queue的用法。
何為隊列?
隊列是一種特殊數據結構,它只允許在表的前端進行刪除操作,而在表的后端進行插入操作,“先進先出”的場景,和我們生活中的排隊類似,誰先來先給誰辦理。
Queue隊列
Java中,LinkedList類就是實現的Queue接口,因此,我們可以把LinkedList當成隊列來使用。
先來看看Queue接口的源碼,然后每個方法每個方法的看:
package java.util;public interface Queue<E> extends Collection<E> {boolean add(E e);boolean offer(E e);E remove();E poll();E element();E peek(); }插入元素:
其中,add方法和offer方法都是可以在隊列的尾部添加元素,代碼如下:
public static void main(String[] args) {Queue<String> list = new LinkedList<String>();//添加元素list.add("a");list.offer("b");list.offer("c");list.offer("d");System.out.println("元素列表:");//遍歷for (String s : list) {System.out.print(s+" ");}}運行結果如下:
add方法和offer方法的區別:
雖然兩個方法都可以實現添加,但是如果隊列滿的時候,使用add方法時就會報錯,而offer方法就不一樣了,它在添加失敗時不會直接報錯,而是會返回false。
刪除元素:
remove方法和poll方法都是刪除隊列中的第一個元素,代碼示例如下:
public static void main(String[] args) {Queue<String> list = new LinkedList<String>();//添加元素list.add("a");list.offer("b");list.offer("c");list.offer("d");System.out.println("元素列表:");//遍歷for (String s : list) {System.out.print(s+" ");}System.out.println("\n---------\n調用remove方法");list.remove();//遍歷for (String s : list) {System.out.print(s+" ");}System.out.println("\n---------\n調用poll方法");list.poll();//遍歷for (String s : list) {System.out.print(s+" ");}}運行結果如下:
remove方法和poll方法的區別:
當隊列為空時 remove() 方法會報 NoSuchElementException 錯; 而 poll() 不會奔潰,只會返回 null。
返回隊列的第一個元素:
element方法和peek方法都是返回隊列中的第一個元素,代碼示例如下:
public static void main(String[] args) {Queue<String> list = new LinkedList<String>();//添加元素list.add("a");list.offer("b");list.offer("c");list.offer("d");System.out.println("元素列表:");//遍歷for (String s : list) {System.out.print(s+" ");}System.out.println("\n---------\n調用remove方法");list.remove();//遍歷for (String s : list) {System.out.print(s+" ");}System.out.println("\n---------\n調用poll方法");list.poll();//遍歷for (String s : list) {System.out.print(s+" ");}System.out.println("\n-------------");System.out.println("隊列中的第一個元素是:"+list.element());System.out.println("隊列中的第一個元素是:"+list.peek());}運行結果如下:
element方法和peek方法的區別:
和remove方法一樣,當隊列為空時,調用element方法會拋出異常,而peek則會返回null。
今天的分享就這些,歡迎大家關注公眾號雄雄的小課堂獲取更多精彩內容
總結
以上是生活随笔為你收集整理的java中的Queue队列的用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: javaweb实现分页(二)
- 下一篇: 使用枚举定义常量更好点儿