PriorityQueue en Java
- Déclaration de PriorityQueue en Java
- Ajout d’un élément à PriorityQueue
- Suppression d’éléments de PriorityQueue
- Accès aux éléments PriorityQueue
- Itération de la PriorityQueue
Une PriorityQueue est utilisée lorsque les objets doivent continuer en fonction de la priorité. Il est également basé sur l’algorithme First-In-First-Out, mais parfois les éléments doivent être traités en fonction de la priorité. C’est pourquoi PriorityQueue
entre en jeu. PriorityQueue
est basé sur un tas prioritaire. Les éléments de la PriorityQueue
sont organisés selon l’ordre naturel, et au moment de la construction de la queue
, cela dépend du constructeur utilisé.
Déclaration de PriorityQueue en Java
public class PriorityQueue<E> extends AbstractQueue<E> implements Serializable
Ici, E est le type d’éléments contenus dans cette file d’attente.
Voyons comment les différentes opérations peuvent être effectuées sur la classe PriorityQueue
.
Ajout d’un élément à PriorityQueue
Pour inclure un élément dans la PriorityQueue
, il est possible d’utiliser la méthode add()
ou la méthode addition()
. L’ordre d’insertion n’est pas enregistré dans la PriorityQueue
. Ces éléments seront stockés suivant l’ordre de priorité, qui sera ascendant par défaut.
Exemple:
import java.io.*;
import java.util.*;
public class PriorityQueueDemo {
public static void main(String args[]) {
PriorityQueue<String> pq = new PriorityQueue<>();
pq.add("Welcome");
pq.add("To");
pq.add("Party");
System.out.println(pq);
}
}
Production:
[To, Welcome, Party]
Suppression d’éléments de PriorityQueue
Pour supprimer l’élément d’une PriorityQueue, nous pouvons utiliser la méthode delete()
. S’il existe plusieurs de ces objets, la première instance de l’objet est supprimée. De plus, il est également possible d’utiliser la méthode poll()
pour prendre la tête puis la remplacer.
import java.io.*;
import java.util.*;
public class PriorityQueueDemo {
public static void main(String args[]) {
PriorityQueue<String> pq = new PriorityQueue<>();
pq.add("Welcome");
pq.add("To");
pq.add("Party");
System.out.println("Initial PriorityQueue " + pq);
pq.remove("Geeks");
System.out.println("After Remove - " + pq);
System.out.println("Poll Method - " + pq.poll());
System.out.println("Final PriorityQueue - " + pq);
}
}
Production:
Initial PriorityQueue [To, Welcome, Party]
After Remove - [To, Welcome]
Poll Method - To
Final PriorityQueue - [Party]
Accès aux éléments PriorityQueue
Parce que Queue
est basé sur son principe First In First Out, nous ne pouvons accéder qu’à la tête de la Queue
. Pour accéder aux éléments Queue
prioritaires, vous pouvez utiliser la méthode peek()
.
Exemple:
// Java program to access elements
// from a PriorityQueue
import java.util.*;
class PriorityQueueDemo {
// Main Method
public static void main(String[] args) {
// Creating a priority queue
PriorityQueue<String> pq = new PriorityQueue<>();
pq.add("Welcome");
pq.add("To");
pq.add("Party");
System.out.println("PriorityQueue: " + pq);
// Using the peek() method
String element = pq.peek();
System.out.println("Accessed Element: " + element);
}
}
Production:
PriorityQueue: [To, Welcome, Party]
Accessed Element: To
Itération de la PriorityQueue
Il existe de nombreuses façons d’itérer sur la PriorityQueue
. La méthode la plus connue consiste à convertir la queue
en un tableau, puis à la parcourir à l’aide de la boucle for a. De plus, la queue
est livrée avec un itérateur interne qui peut être utilisé pour parcourir la queue
.
Exemple:
import java.util.*;
public class PriorityQueueDemo {
public static void main(String args[]) {
PriorityQueue<String> pq = new PriorityQueue<>();
pq.add("Welcome");
pq.add("To");
pq.add("Party");
Iterator iterator = pq.iterator();
while (iterator.hasNext()) {
System.out.print(iterator.next() + " ");
}
}
}
Production:
To Welcome Party