大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

Java隊(duì)列

Java隊(duì)列

隊(duì)列是只能在其上執(zhí)行操作的對象的集合兩端的隊(duì)列。

隊(duì)列有兩個末端,稱為頭和尾。

在簡單隊(duì)列中,對象被添加到尾部并從頭部刪除并首先刪除首先添加的對象。

Java Collections Framework支持以下類型的隊(duì)列。

• 簡單的隊(duì)列允許在尾部插入和從頭部移除。

• 優(yōu)先級隊(duì)列為每個元素分配優(yōu)先級,并允許從隊(duì)列中刪除具有最高優(yōu)先級的元素。

• 延遲隊(duì)列向每個元素添加延遲,并僅在其延遲已過去時刪除該元素。

• 雙端隊(duì)列允許其元件從頭部和尾部插入和移除。

• 阻塞隊(duì)列阻塞線程,當(dāng)線程已滿時向其添加元素,當(dāng)線程為空時,它阻止線程從中刪除元素。

• 傳輸隊(duì)列是阻塞隊(duì)列,其中對象的切換發(fā)生在生產(chǎn)者線程和消費(fèi)者線程之間。

• 阻塞雙端隊(duì)列是雙端隊(duì)列和阻塞隊(duì)列的組合。

隊(duì)列的簡介

• 隊(duì)列可以定義為有序列表,它允許在一端執(zhí)行插入操作,稱為REAR,刪除操作在另一端執(zhí)行,稱為FRONT。

• 隊(duì)列被稱為先進(jìn)先出列表。

• 例如,排隊(duì)等候鐵路車票的人隊(duì)列。

隊(duì)列的應(yīng)用

由于隊(duì)列以先進(jìn)先出的方式執(zhí)行操作,這對于操作的排序是相當(dāng)公平的。 隊(duì)列的各種應(yīng)用如下所述。

• 隊(duì)列被廣泛用作單個共享資源(如打印機(jī),磁盤,CPU)的等待列表。

• 隊(duì)列用于異步數(shù)據(jù)傳輸(例如,數(shù)據(jù)不以兩個進(jìn)程之間的相同速率傳輸)。 管道,文件IO,套接字。

• 隊(duì)列在大多數(shù)應(yīng)用程序中用作緩沖區(qū),如MP3媒體播放器,CD播放器等。

• 隊(duì)列用于維護(hù)媒體播放器中的播放列表,以便添加和刪除播放列表中的歌曲。

• 隊(duì)列在操作系統(tǒng)中用于處理中斷。

時間復(fù)雜性

時間復(fù)雜性

訪問

搜索

插入

刪除

平均情況

θ(n)

θ(n)

θ(1)

θ(1)

最壞情況

θ(n)

θ(n)

θ(1)

θ(1)

簡單隊(duì)列

簡單隊(duì)列由 Queue 接口的實(shí)例表示。

隊(duì)列允許您執(zhí)行三個基本操作:

• 從尾部添加元素

• 從其頭部移除元素

• 在元素頂部審查

Queue接口為三個操作中的每一個定義了兩個方法。如果操作不可能,一個方法拋出異常,另一個方法方法返回false或null以指示失敗。

方法

描述

boolean add(E e)

如果可能,向隊(duì)列中添加一個元素。否則,它拋出異常。

boolean offer(E e)

如果不能添加元素,則將元素添加到隊(duì)列中,而不拋出異常。 它在失敗時返回false,在成功時返回true。

E remove()

刪除隊(duì)列的頭。如果隊(duì)列為空,它會拋出異常。此方法返回已移除的項(xiàng)目。

E poll()

從隊(duì)列中刪除元素。如果隊(duì)列為空而不是拋出異常,則返回null。

Eelement()

偷看隊(duì)列的頭,而不從隊(duì)列中刪除它。 如果隊(duì)列為空,它會拋出異常。

E peek()

查看隊(duì)列,如果隊(duì)列為空而不是拋出異常,則返回null。

LinkedList和PriorityQueue是Queue接口的兩個實(shí)現(xiàn)類。LinkedList還實(shí)現(xiàn)了List接口。

例子

以下代碼顯示如何將鏈表用作FIFO隊(duì)列。

import java.util.LinkedList;
import java.util.NoSuchElementException;
import java.util.Queue;

public class Main {
  public static void main(String[] args) {
    Queue<String> queue = new LinkedList<>();
    queue.add("Java");
    // offer() will work the same as add()
    queue.offer("SQL");
    queue.offer("CSS");
    queue.offer("XML");

    System.out.println("Queue: " + queue);

    // Let"s remove elements until the queue is empty
    while (queue.peek() != null) {
      System.out.println("Head  Element: " + queue.peek());
      queue.remove();
      System.out.println("Removed one  element from  Queue");
      System.out.println("Queue: " + queue);
    }
    System.out.println("queue.isEmpty(): " + queue.isEmpty());
    System.out.println("queue.peek(): " + queue.peek());
    System.out.println("queue.poll(): " + queue.poll());
    try {
      String str = queue.element();
      System.out.println("queue.element(): " + str);
      str = queue.remove();
      System.out.println("queue.remove(): " + str);
    } catch (NoSuchElementException e) {
      System.out.println("queue.remove(): Queue is  empty.");
    }
  }
}

上面的代碼生成以下結(jié)果。

全部教程
主站蜘蛛池模板: 日本不卡一区二区三区 最新 | 亚洲欧美日韩成人一区在线 | 日本精品中文字幕在线不卡 | 天天综合亚洲国产色 | 奇米色网| 97在线免费观看视频 | 久久免费在线视频 | 国产成人91一区二区三区 | 亚洲欧美日韩国产精品网 | 日本三级一区 | 免费播放一区二区三区 | 99热国产在线观看 | 国产91一区二这在线播放 | 黄色自拍网站 | 伊人国产在线播放 | 一区二区在线播放福利视频 | 国产精品久久成人影院 | 国内精品久久久久久影院网站小说 | 中文字幕一区精品 | 日韩精品亚洲精品485页 | 久久综合给合久久狠狠狠色97 | 国产精品综合在线 | jizz孕妇孕交 | 欧美国产亚洲精品高清不卡 | 亚久久 | 国产深夜福利视频在线观看 | 亚洲精品乱码久久久久久蜜桃欧美 | 一区二区在线不卡 | 香蕉一区二区 | 免费激情片 | 免费视频 久久久 | 99爱在线精品视频免费观看9 | 国产综合社区 | 9966久久精品免费看国产 | 免费看真人a一级毛片 | 天天综合网天天综合色不卡 | 久久人人澡 | 999福利视频 | 96精品专区国产在线观看高清 | 日韩精品成人免费观看 | 丁香久久 |