Javaで優先キューを実装する方法は?



この記事では、プログラミングドメインのもう1つの興味深いトピックであるJavaの優先度付きキューをデモンストレーションとともに紹介します。

優先事項 Javaのキュー オブジェクトが優先度に基づいて処理されることになっている場合に使用されます。この記事は、この概念を詳細に検討するのに役立ちます。この記事では、次のポイントについて説明します。

それでは始めましょう、





Javaの優先キュー

すでに述べたように、PriorityQueueは、オブジェクトが優先度に基づいて処理されることになっている場合に使用されます。キューは先入れ先出しアルゴリズムに従うことが知られていますが、キューの要素を優先度に従って処理する必要がある場合があります。その場合、PriorityQueueが機能します。 PriorityQueueは、優先度ヒープに基づいています。優先度付きキューの要素は、使用するコンストラクターに応じて、自然な順序に従って、またはキューの構築時に提供されるコンパレーターによって順序付けられます。優先度付きキューの重要なポイントは次のとおりです。

  • PriorityQueueはNULLポインターを許可しません。
  • 比較できないオブジェクトのPriorityQueueを作成することはできません
  • PriorityQueueはバインドされていないキューです。
  • このキューの先頭は、指定された順序に関して最小の要素です。複数の要素が最小値で結び付けられている場合、ヘッドはそれらの要素の1つです—結びつきは任意に解除されます。
  • キュー取得操作は、キューの先頭にある要素をポーリング、削除、ピーク、および要素アクセスします。
  • AbstractQueue、AbstractCollection、Collection、およびObjectクラスからメソッドを継承します。

Javaの優先度付きキューに関するこの記事に進む



キューインターフェイス宣言

パブリックインターフェイスキューはコレクションを拡張します

Javaの優先度付きキューに関するこの記事に進む

Javaキューインターフェイスのメソッド

方法 説明

ブール値add(object)



これは、指定された要素をこのキューに挿入し、成功するとtrueを返すために使用されます。

2進化10進数のJavaコード

ブールオファー(オブジェクト)

指定された要素をこのキューに挿入するために使用されます。

オブジェクトremove()

このキューの先頭を取得して削除するために使用されます。

オブジェクトpoll()

これは、このキューの先頭を取得して削除するために使用されます。このキューが空の場合はnullを返します。

オブジェクトelement()

これは、このキューの先頭を取得するために使用されますが、削除はしません。

オブジェクトpeek()

これは、このキューの先頭を取得するために使用されますが、削除はしません。このキューが空の場合はnullを返します。

Javaの優先度付きキューに関するこの記事に進む

パッケージcom.journaldev.collections

import java.util.Comparator import java.util.PriorityQueue import java.util.Queue import java.util.Random public class PriorityQueueExample {public static void main(String [] args){//優先キューの自然な順序付けの例Queue integerPriorityQueue = new PriorityQueue(7)Random rand = new Random()for(int i = 0i<7i++){ integerPriorityQueue.add(new Integer(rand.nextInt(100))) } for(int i=0i<7i++){ Integer in = integerPriorityQueue.poll() System.out.println('Processing Integer:'+in) } //PriorityQueue example with Comparator Queue customerPriorityQueue = new PriorityQueue(7, idComparator) addDataToQueue(customerPriorityQueue) pollDataFromQueue(customerPriorityQueue) } //Comparator anonymous class implementation public static Comparator idComparator = new Comparator(){ @Override public int compare(Customer c1, Customer c2) { return (int) (c1.getId() - c2.getId()) } } //utility method to add random data to Queue private static void addDataToQueue(Queue customerPriorityQueue) { Random rand = new Random() for(int i=0 i<7 i++){ int id = rand.nextInt(100) customerPriorityQueue.add(new Customer(id, 'Pankaj '+id)) } } //utility method to poll data from queue private static void pollDataFromQueue(Queue customerPriorityQueue) { while(true){ Customer cust = customerPriorityQueue.poll() if(cust == null) break System.out.println('Processing Customer with ID='+cust.getId()) } } } 

出力:

Javaの出力優先キュー-Edureka

これで、「Javaの優先度付きキュー」に関するこの記事は終わりです。詳細を知りたい場合は、 信頼できるオンライン学習会社であるEdurekaによる。 EdurekaのJavaJ2EEおよびSOAトレーニングおよび認定コースは、Hibernate&SpringなどのさまざまなJavaフレームワークに加えて、コアJavaコンセプトと高度なJavaコンセプトの両方についてトレーニングするように設計されています。

質問がありますか?このブログのコメントセクションでそれについて言及してください。できるだけ早くご連絡いたします。