English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java 基礎教程

Java プロセス制御

Java 配列

Java 面向オブジェクト(I)

Java 面向オブジェクト(II)

Java 面向オブジェクト(III)

Java 異常処理

Java リスト(List)

Java Queue(クエueue)

Java Mapコレクション

Java Setコレクション

Java 入出力(I/O)

Java Reader/Writer

Java その他のトピック

Java キューインターフェース

このチュートリアルでは、Java Queueインターフェースおよびそのメソッドを学びます。

JavaコレクションフレームワークのQueueインターフェースは、クエueueデータ構造の機能を提供します。それはCollectionインターフェースを継承しています。

クエueueを実装するクラス

Queueはインターフェースであるため、その直接の実装を提供することができません。

Queueの機能を使用するために、その実装クラスを使用する必要があります:

Queueを継承するインターフェース

Queueインターフェースは、さまざまなサブインターフェースに継承されることができます:

  • Deque

  • BlockingQueue

  • BlockingDeque

クエueueデータ構造の動作プロセス

クエueueの中で、先入先出この方法で要素を保存およびアクセスします。つまり、要素を後ろから追加し、前から要素を削除します

どうやってクエueue(Queue)を使用するか?

Javaでは、Queueを使用するにはjava.util.Queueパッケージをインポートする必要があります。

// LinkedListを使用して作成
Queue<String> animal1 = new LinkedList<>();
// ArrayDequeを使用して作成
Queue<String> animal2 = new ArrayDeque<>();
// PriorityQueueを使用して作成
Queue<String> animal 3 = new PriorityQueue<>();

ここでは、LinkedList、ArrayDeque、PriorityQueueのクラスAnimalのオブジェクトをそれぞれ作成します。1、Animal2とAnimal3.これらのオブジェクトはQueueインターフェースの機能を使用できます。

Queueのメソッド

QueueインターフェースはCollectionインターフェースのすべてのメソッドを含んでいます。これはCollectionがQueueのスーパーアンケストラクチャであるためです。

Queueインターフェースの一部の常用メソッドは:

  • add() - 指定された要素を挿入します。タスクが成功した場合、add()はtrueを返し、それ以外の場合は例外を発生させます。

  • offer() - 指定された要素を挿入します。タスクが成功した場合、offer()はtrueを返し、それ以外の場合はfalseを返します。

  • element() - 先頭を返します。キューが空の場合は例外を発生させます。

  • peek() - 先頭を返します。キューが空の場合はnullを返します。

  • remove() - 先頭を返し、削除します。キューが空の場合は例外を発生させます。

  • poll() - 先頭を返し、削除します。キューが空の場合はnullを返します。

キューインターフェースの実現

1.LinkedListクラスを実現

import java.util.Queue;
import java.util.LinkedList;
class Main {
    public static void main(String[] args) {
        // LinkedListクラスを使用してQueueを作成
        Queue<Integer> numbers = new LinkedList<>();
        //要素をQueueに追加
        numbers.offer(1);
        numbers.offer(2);
        numbers.offer(3);
        System.out.println("Queue: " + numbers);
        // Queueの要素にアクセス
        int accessedNumber = numbers.peek();
        System.out.println("要素のアクセス: " + accessedNumber);
        //Queueの要素から
        int removedNumber = numbers.poll();
        System.out.println("要素の削除: " + removedNumber);
        System.out.println("更新後の Queue: " + numbers);
    }
}

出力結果

Queue: [1, 2, 3]
要素へのアクセス: 1
要素の削除: 1
更新後の Queue: [2, 3]

さらに詳しい情報は、以下のサイトにアクセスしてくださいJava LinkedList

2.PriorityQueueクラスを実現

import java.util.Queue;
import java.util.PriorityQueue;
class Main {
    public static void main(String[] args) {
        // PriorityQueueクラスを使用してキューを作成 
        Queue<Integer> numbers = new PriorityQueue<>();
        //要素をQueueに追加
        numbers.offer(5);
        numbers.offer(1);
        numbers.offer(2);
        System.out.println("Queue: " + numbers);
        //Queueの要素にアクセスする
        int accessedNumber = numbers.peek();
        System.out.println("要素のアクセス: " + accessedNumber);
        //Queueから要素を削除する
        int removedNumber = numbers.poll();
        System.out.println("要素の削除: " + removedNumber);
        System.out.println("更新後の Queue: " + numbers);
    }
}

出力結果

Queue: [1, 5, 2]
要素のアクセス: 1
要素の削除: 1
更新後の Queue: [2, 5]

さらに詳しい情報は、以下のサイトにアクセスしてくださいJava PriorityQueue

次のチュートリアルでは、この Queue インターフェースの異なるサブインターフェースとその実装について詳しく説明します。