Maison > Java > javaDidacticiel > File d'attente prioritaire en Java

File d'attente prioritaire en Java

PHPz
Libérer: 2024-08-30 16:04:30
original
661 Les gens l'ont consulté

Normalement, les objets dans la file d'attente sont placés dans l'ordre FIFO. c'est-à-dire, premier entré, premier sorti. Dans certains cas, les objets doivent être traités en fonction de leur priorité, et c'est à ce moment-là que Java PriorityQueue est entré en action. En plus de cela, PriorityQueue possède certaines fonctionnalités :

Commencez votre cours de développement de logiciels libres

Développement Web, langages de programmation, tests de logiciels et autres

  • C'est une file d'attente illimitée.
  • Par défaut, l'ordre des éléments est dans un ordre naturel.
  • Les valeurs nulles ne sont pas autorisées.
  • Les objets non comparables ne peuvent pas être utilisés pour créer une PriorityQueue.

Déclaration de Java PriorityQueue

Java PriorityQueue peut être déclaré en utilisant la syntaxe ci-dessous.

public class PriorityQueue<E> extends AbstractQueue<E> implements Serializable
Copier après la connexion

Constructeurs de Java PriorityQueue

Voici les constructeurs couramment utilisés dans Java PriorityQueue :

1. PriorityQueue() : Une PriorityQueue sera créée avec 11 car sa capacité initiale est par défaut. De plus, les éléments sont ordonnés en fonction de l'ordre naturel.

2. PriorityQueue(CollectionE> c) : Une PriorityQueue sera créé avec des éléments de la collection mentionnée.

3. PriorityQueue(int ic) : Une PriorityQueue sera créée avec la capacité initiale ic mentionnée. De plus, les éléments sont ordonnés en fonction de l'ordre naturel.

4. PriorityQueue(int ic, Comparator comparator) : Une PriorityQueue sera créée avec la capacité initiale mentionnée. De plus, les éléments sont classés en fonction du comparateur mentionné.

5. PriorityQueue(PriorityQueueE> c) : Une PriorityQueue sera créé avec des éléments dans la PriorityQueue mentionnée.

6. PriorityQueue(SortedSetE> c): Une PriorityQueue sera créée avec des éléments de l'ensemble trié mentionné.

Méthodes

Voyons maintenant quelques-unes des méthodes couramment utilisées dans Java PriorityQueue :

1. add(E e) : L'élément e sera ajouté à PriorityQueue lors de l'appel de cette méthode.

2. size() : Le nombre d'éléments de la collection sera renvoyé.

3. clear() : Tous les éléments de PriorityQueue seront supprimés.

4. comparator() : Le comparateur utilisé pour trier la file d'attente sera renvoyé. Si l'ordre naturel est utilisé, null sera renvoyé.

5. contient(Objecto) : Si la file d'attente contient l'élément mentionné o, true sera renvoyé.

6. itérateur() : L'itérateur utilisé sur les éléments de la file d'attente sera renvoyé.

7. offre(Ee): L'élément mentionné e sera inséré dans la file d'attente.

8. peek() : Le chef de PriorityQueue sera récupéré, pas supprimé. Si aucun élément n'est présent, null sera renvoyé.

9. poll() : Le chef de PriorityQueue sera récupéré et supprimé. Si aucun élément n'est présent, null sera renvoyé.

10. supprimer(Objecto) : Une seule instance de l'élément mentionné sera supprimée de la file d'attente.

11. toArray() : Un tableau de tous les éléments de la file d'attente sera renvoyé.

12. toArray(T[] a): Un tableau de tous les éléments de la file d'attente sera renvoyé dans lequel le temps d'exécution sera celui du tableau mentionné.

Exemples de Java PriorityQueue

Vous trouverez ci-dessous des exemples de Java PriorityQueue :

Exemple n°1

Exemple de programme pour créer une PriorityQueue.

Code :

import java.util.Iterator;
import java.util.PriorityQueue;
class Main{
public static void main(String args[]){
//create a PriorityQueue
PriorityQueue<String> q=new PriorityQueue<String>();
//add elements to the queue
q.add("Anna");
q.add("Annamu");
q.add("Adam");
q.add("Iza");
q.add("Thukidi");
System.out.println("Head of the queue:"+q.element());
System.out.println("Head of the queue :"+q.peek());
//Retrieve elements in queue using iterator
System.out.println("Queue elements are :");
Iterator it=q.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}
//remove the element from queue
q.remove();
//remove the head of the queue
q.poll();
System.out.println("\n Queue after the removal of 2 elements :");
//Retrieve elements in queue using iterator
Iterator<String> it2=q.iterator();
while(it2.hasNext())
{
System.out.println(it2.next());
}
}
}
Copier après la connexion

Sortie :

File d'attente prioritaire en Java

Fonctionnement de l'exemple de programme :

  • Créer une PriorityQueue q.
  • Ajouter des éléments à la file d'attente.
  • Imprimez la tête de file d'attente.
  • Imprimez tous les éléments de la file d'attente à l'aide de l'itérateur.
  • Supprimez deux éléments.
  • Imprimez tous les éléments de la file d'attente après la suppression de deux éléments.

Exemple n°2

Exemple de programme pour créer une PriorityQueue à l'aide d'un comparateur.

Code:

import java.util.Comparator;
import java.util.Iterator;
import java.util.PriorityQueue;
class PriorityQueueExample{
public static void main(String[] args) {
//Create a custom comparator. In this, length of 2 strings are getting compared
Comparator<String> cmp = new Comparator<String>()
{
@Override
public int compare(String str1, String str2) {
return str1.length() - str2.length();
}
};
// PriorityQueue creation with Comparator
PriorityQueue<String> q = new PriorityQueue<>(cmp);
// Add elements to the Queue
q.add("Anna");
q.add("Annamu");
q.add("Adam");
q.add("Iza");
q.add("Thukidi");
q.add("Sam");
q.add("Elsa");
q.add("Kukku");
q.add("Mathu");
q.add("Radha");
// Remove elements from the Queue
while (!q.isEmpty()) {
System.ou<em>t</em>.println(q.remove());
}
}
}
Copier après la connexion

Output:

File d'attente prioritaire en Java

Working of the sample program:

  • Create a custom comparator where the elements in the Queue are compared based on the length.
  • Create a PriorityQueue q.
  • Add elements to the Queue.
  • Remove the elements from the queue based on the length of the strings.
  • Print the elements in the queue in the order of removal.

Example #3

Sample program to implement a PriorityQueue by making use of different methods.

Code:

import java.util.*;
class Main{
public static void main(String args[]){
//create a PriorityQueue
PriorityQueue<String> q=new PriorityQueue<String>();
//add elements to the queue
q.add("Anna");
q.add("Annamu");
q.add("Adam");
q.add("Iza");
q.add("Thukidi");
System.out.println("Head of the queue:"+q.element());
System.out.println("Head of the queue :"+q.peek());
//Retrieve elements in queue using iterator
System.out.println("Queue elements are :");
Iterator it=q.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}
//remove the element from queue
q.remove();
//remove the head of the queue
q.poll();
// Check whether the element Anna is present in queue using the method Contains()
boolean b = q.contains("Anna");
System.out.println("Is there any element Anna in the PriorityQueue ? " + b);
//Check whether the element Iza is present in queue using the method Contains()
boolean bl = q.contains("Iza");
System.out.println("Is there any element Anna in the PriorityQueue ? " + bl);
}
}
Copier après la connexion

Output:

File d'attente prioritaire en Java

Working of the sample program:

  • Create a PriorityQueue q.
  • Add elements and Print the head of the queue.
  • Print all the elements in the Queue using iterator.
  • Remove two elements using the methods remove() and poll().
  • Check whether the two elements Anna and Iza are available in Queue using the method Contains().

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal