国产chinesehdxxxx野外,国产av无码专区亚洲av琪琪,播放男人添女人下边视频,成人国产精品一区二区免费看,chinese丰满人妻videos

Java 隊(duì)列

2018-02-20 02:47 更新

Java集合教程 - Java隊(duì)列


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

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

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

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

  • 簡(jiǎn)單的隊(duì)列允許在尾部插入和從頭部移除。
  • 優(yōu)先級(jí)隊(duì)列為每個(gè)元素分配優(yōu)先級(jí),并允許從隊(duì)列中刪除具有最高優(yōu)先級(jí)的元素。
  • 延遲隊(duì)列向每個(gè)元素添加延遲,并僅在其延遲已過去時(shí)刪除該元素。
  • 雙端隊(duì)列允許其元件從頭部和尾部插入和移除。
  • 阻塞隊(duì)列阻塞線程,當(dāng)線程已滿時(shí)向其添加元素,當(dāng)線程為空時(shí),它阻止線程從中刪除元素。
  • 傳輸隊(duì)列是阻塞隊(duì)列,其中對(duì)象的切換發(fā)生在生產(chǎn)者線程和消費(fèi)者線程之間。
  • 阻塞雙端隊(duì)列是雙端隊(duì)列和阻塞隊(duì)列的組合。

簡(jiǎn)單隊(duì)列

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

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

  • 從尾部添加元素
  • 從其頭部移除元素
  • 在元素頂部審查

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

方法描述
boolean add(E e)如果可能,向隊(duì)列中添加一個(gè)元素。否則,它拋出異常。
boolean offer(E e)如果不能添加元素,則將元素添加到隊(duì)列中,而不拋出異常。 它在失敗時(shí)返回false,在成功時(shí)返回true。
E remove()刪除隊(duì)列的頭。如果隊(duì)列為空,它會(huì)拋出異常。此方法返回已移除的項(xiàng)目。
E poll()從隊(duì)列中刪除元素。如果隊(duì)列為空而不是拋出異常,則返回null。
Eelement()偷看隊(duì)列的頭,而不從隊(duì)列中刪除它。 如果隊(duì)列為空,它會(huì)拋出異常。
E peek()查看隊(duì)列,如果隊(duì)列為空而不是拋出異常,則返回null。

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

Queue APIs

LinkedList APIs

Stack APIs



例子

以下代碼顯示如何將鏈表用作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é)果。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)