日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java队列接口

發布時間:2023/12/3 java 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java队列接口 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

介紹:

隊列是FIFO(先進先出)抽象數據類型(ADT)。 換句話說,按插入順序將元素刪除。

java.util.Queue是Java 中的接口,并且從java.util.Collection擴展。 一些常用的Queue實現類包括LinkedList, ArrayDeque和PriorityQueue 。

隊列類型:

隊列有兩個主要類別:

1.阻塞隊列:這些是具有固定容量有界隊列。 這意味著我們必須在創建隊列時提供隊列的容量。

java.util.concurrent包中提供了有界隊列的實現類 例如,一個ArrayBlockingQueue 。

2.非阻塞隊列: java.util包下的隊列實現屬于此隊列類別。 例如, LinkedList或PriorityQueue 。

顧名思義, 這些元素是無限制的,我們可以根據需要插入任意數量的元素。

關鍵方法:

讓我們看一下Queue接口公開的最常用方法:

引發異常:

下面的方法將嘗試對隊列進行操作。 如果由于某種原因(例如由于容量問題)而失敗,則會拋出運行時異常:

1.

使用add() ,我們可以將元素添加到隊列中:

Queue<Integer> queue = new LinkedList<>();queue.add(1); queue.add(2); queue.add(3);

如果元素插入成功,則返回true 。 否則,它將引發IllegalStateException。

2.

我們可以使用remove()方法來檢索和刪除隊列頭部的元素

int removedItem = queue.remove();System.out.println(removedItem); //prints 1System.out.println(queue); // [2, 3]

請注意,我們從隊列中刪除了第一個元素。 因此,現在我們的隊列僅包含[2,3] 。

在空隊列上調用時,此方法將引發NoSuchElementException 。

3.

此方法將僅返回隊列的head元素,而不會將其刪除

int topItem = queue.element(); // 2System.out.println(queue); //[2, 3]

請注意,我們的隊列仍然包含兩個元素。

就像remove()一樣 ,它將為空隊列拋出NoSuchElementException異常。

返回特殊值:

現在,我們將介紹上述方法的細微變化。 這些方法不會拋出異常。 當他們無法執行操作時,他們寧愿返回一些值

1.

就像add()一樣 ,我們有一個offer()方法,可以用來插入元素:

Queue<Integer> queue = new LinkedList<>(); queue.offer(1); queue.offer(2); queue.offer(3);

如果無法插入,它將返回false。

2.

我們可以使用poll()檢索和刪除元素:

int removedItem = queue.poll(); // returns 1System.out.println(queue); //[2, 3]

對于空隊列,它將僅返回一個空值。

3.

與element()類似,它只是檢索隊列的最前面的元素:

int topItem = queue.peek(); // 2System.out.println(queue); //still [2, 3]

由于我們已經刪除了1 ,因此這里的頂部元素是2 。

如果在空隊列中使用此方法,則將獲得空值。

其他有用的方法:

由于Queue從Collection接口擴展而來,因此它也從該接口繼承方法。 一些有用的包括:

1. size():返回隊列的大小

2. contains():如果元素存在于隊列中,則返回true

3. isEmpty() :對于空隊列,它將返回true 。 否則為false 。

結論:

在本文中,我們討論了Java中的Queue接口。 我們介紹了此接口公開的所有主要方法。

成為第一個發表評論的人。

翻譯自: https://www.javacodegeeks.com/2019/05/java-queue-interface.html

總結

以上是生活随笔為你收集整理的Java队列接口的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。