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

歡迎訪問 生活随笔!

生活随笔

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

java

Java™ 教程(Queue接口)

發布時間:2025/6/17 java 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java™ 教程(Queue接口) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Queue接口

Queue是在處理之前保存元素的集合,除了基本的Collection操作外,隊列還提供額外的插入、刪除和檢查操作,Queue接口如下。

public interface Queue<E> extends Collection<E> {E element();boolean offer(E e);E peek();E poll();E remove(); }

每個Queue方法都有兩種形式:(1)如果操作失敗則拋出異常,(2)如果操作失敗,則返回特殊值(null或false,具體取決于操作),接口的常規結構如下表所示。

操作類型拋出異常返回特殊值
插入add(e)offer(e)
移除remove()poll()
檢查element()peek()

隊列通常(但不一定)以FIFO(先進先出)方式對元素進行排序,優先級隊列除外,它們根據元素的值對元素進行排序 — 有關詳細信息,請參閱“對象排序”部分。無論使用什么排序,隊列的頭部都是通過調用remove或poll移除的元素。在FIFO隊列中,所有新元素都插入隊列的尾部,其他類型的隊列可能使用不同的放置規則,每個Queue實現都必須指定其排序屬性。

Queue實現可以限制它所擁有的元素數量,這樣的隊列被稱為有界,java.util.concurrent中的某些Queue實現是有界的,但java.util中的實現不是。

Queue從Collection繼承的add方法插入一個元素,除非它違反了隊列的容量限制,在這種情況下它會拋出IllegalStateException。offer方法,僅用于有界隊列,與add不同之處僅在于它通過返回false來表示插入元素失敗。

remove和poll方法都移除并返回隊列的頭部,確切地移除哪個元素是隊列的排序策略的函數,僅當隊列為空時,remove和poll方法的行為才有所不同,在這些情況下,remove拋出NoSuchElementException,而poll返回null。

element和peek方法返回但不移除隊列的頭部,它們之間的差異與remove和poll的方式完全相同:如果隊列為空,則element拋出NoSuchElementException,而peek返回null。

隊列實現通常不允許插入null元素,為實現Queue而進行了改進的LinkedList實現是一個例外,由于歷史原因,它允許null元素,但是你應該避免利用它,因為null被poll和peek方法用作特殊的返回值。

隊列實現通常不定義equals和hashCode方法的基于元素的版本,而是從Object繼承基于標識的版本。

Queue接口不定義阻塞隊列方法,這在并發編程中很常見,這些等待元素出現或空間可用的方法在java.util.concurrent.BlockingQueue接口中定義,該接口擴展了Queue。

在以下示例程序中,隊列用于實現倒數計時器,隊列預先加載了從命令行上指定的數字到0的所有整數值,按降序排列,然后,從隊列中刪除值并以一秒的間隔打印。該程序是人為的,因為在不使用隊列的情況下執行相同的操作會更自然,但它說明了在后續處理之前使用隊列來存儲元素。

import java.util.*;public class Countdown {public static void main(String[] args) throws InterruptedException {int time = Integer.parseInt(args[0]);Queue<Integer> queue = new LinkedList<Integer>();for (int i = time; i >= 0; i--)queue.add(i);while (!queue.isEmpty()) {System.out.println(queue.remove());Thread.sleep(1000);}} }

在以下示例中,優先級隊列用于對元素集合進行排序,同樣,這個程序是人為的,因為沒有理由使用它來支持集合中提供的排序方法,但它說明了優先級隊列的行為。

static <E> List<E> heapSort(Collection<E> c) {Queue<E> queue = new PriorityQueue<E>(c);List<E> result = new ArrayList<E>();while (!queue.isEmpty())result.add(queue.remove());return result; }

總結

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

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

主站蜘蛛池模板: 中国老头性行为xxxx | 91亚洲专区 | 长篇高h肉爽文丝袜 | 国内偷拍第一页 | 精品91久久久 | 日韩va在线观看 | 香蕉影院在线 | 国产精品一区二区三区在线播放 | 香蕉视频一区二区 | 成人免费看片'在线观看 | 欧洲熟妇精品视频 | 精品国产传媒 | 五月天综合婷婷 | 欧美成人a | 潘金莲一级淫片a.aaaaa播放 | 波多野结衣av在线观看 | 夜夜小视频 | 一级黄av| 亚洲综合在线一区二区 | 亚洲一区二区三区免费观看 | 91精品国产综合久久福利 | 特级大胆西西4444人体 | 污网站在线播放 | 激情网络 | juliaann精品艳妇hd | 国产另类自拍 | 91视频影院 | 亚洲一二三区在线观看 | 女人黄色片 | 黄色三级图片 | 奇米影视欧美 | 一二三区在线 | 欧美精品久久久久久久久老牛影院 | 播放一级黄色片 | 短裙公车被强好爽h吃奶视频 | 黄色91| 中文字幕亚洲激情 | 超碰人人人 | 成人午夜小视频 | 狠狠干狠狠操视频 | 日韩在线激情 | 激情小说图片视频 | 开心色99| 少妇熟女一区 | 国产乱码精品一区二三赶尸艳谈 | 性欧美18| 青青青在线免费 | 在线不卡二区 | 日韩中文第一页 | 亚洲国产日韩一区二区 | 91一区二区三区在线观看 | 久久97视频 | 91av短视频 | 我们的生活第五季在线观看免费 | 在线观看日本一区 | 日韩乱码视频 | 青青草成人av | 激情片 | 香蕉视频毛片 | 亚洲一区二区中文字幕 | 黄色天堂网站 | 麻豆传媒映画官网 | 西西午夜视频 | 日产电影一区二区三区 | 一区二区三区丝袜 | 高清日韩 | 国产剧情久久久 | 国产青青草在线 | 亚洲成人一级片 | 男人天堂视频在线观看 | 99xav| 亚洲五码av| 日批黄色 | 华人在线视频 | 亚洲精品中文字幕乱码三区 | 久久国产激情 | h视频免费在线观看 | 91玉足脚交嫩脚丫在线播放 | 丰满大肥婆肥奶大屁股 | 亚洲精品国产一区二 | 又黄又色的网站 | 亚洲成av人片在线观看无码 | 最新天堂在线视频 | 久久男女视频 | 亚洲天堂视频在线观看 | 精品一区二区三区三区 | 欧美激情在线一区 | 欧美成人精品欧美一级 | www.麻豆av.com | 国产一区二区黄色 | 爱逼av| 蜜桃av在线| 国产91精品露脸国语对白 | 国产在线观看一区 | 精品乱码久久久久久中文字幕 | 美女扒开粉嫩尿口 | 丝袜ol美脚秘书在线播放 | 精品在线91 | 大肉大捧一进一出好爽视频动漫 |