Exercice Java Corrigé sur les Collections – PriorityQueue

Avec des exercices corrigés en Java, vous pratiquerez divers concepts du langage de programmation Java. Vous commencerez par des exercices Java de base à des exercices plus avancés. La solution est fournie pour chaque exercice. Vous devez essayer de résoudre chaque problème par vous-même avant de vérifier la solution. Si vous avez des questions concernant chaque problème, nous vous encourageons à les poster sur notre forum.
 
 

Exercice 1:

Écrire un programme Java pour créer une file d’attente prioritaire (PriorityQueue), ajouter quelques noms (chaînes) et afficher les éléments de la file d’attente prioritaire (PriorityQueue).

Exemple de sortie:

Éléments de la file d'attente prioritaire:
[Alex, Ali, Jean, Bob, Denis]
Solution:

import java.util.PriorityQueue;
public class Main {
  public static void main(String[] args) {
    // Créer une file d'attente prioritaire vide
    PriorityQueue<String> q = new PriorityQueue<String>();  
    // Utiliser la méthode add() pour ajouter des valeurs dans la 
    // file d'attente prioritaire
    q.add("Alex");
    q.add("Bob");
    q.add("Jean");
    q.add("Ali");
    q.add("Denis");
    System.out.println("Éléments de la file d'attente prioritaire:");
    System.out.println(q);
  }
}

Sortie:

Éléments de la file d'attente prioritaire:
[Alex, Ali, Jean, Bob, Denis]
 

Exercice 2:

Écrire un programme Java pour parcourir tous les éléments de la file d’attente prioritaire.

Exemple de sortie:

Éléments de la file d'attente prioritaire:
Alex
Ali
Jean
Bob
Denis
Solution:

import java.util.PriorityQueue;
public class Main {
  public static void main(String[] args) {
    // Créer une file d'attente prioritaire vide
    PriorityQueue<String> q = new PriorityQueue<String>();  
    // Utiliser la méthode add() pour ajouter des valeurs dans la 
    // file d'attente prioritaire
    q.add("Alex");
    q.add("Bob");
    q.add("Jean");
    q.add("Ali");
    q.add("Denis");
    System.out.println("Éléments de la file d'attente prioritaire:");
    // Parcourir la file d'attente prioritaire
    for (String e : q) {
       System.out.println(e);
    }
 }
}

Sortie:

Éléments de la file d'attente prioritaire:
Alex
Ali
Jean
Bob
Denis
 

Exercice 3:

Écrire un programme Java pour insérer un élément donné dans une file d’attente prioritaire.

Exemple de sortie:

File d'attente originale: [Alex, Ali, Jean, Bob, Denis]
Après l'insertion: [Alex, Ali, Jean, Bob, Denis, Olivier]
Solution:

import java.util.PriorityQueue;
public class Main {
  public static void main(String[] args) {
    // Créer une file d'attente prioritaire vide
    PriorityQueue<String> q = new PriorityQueue<String>();
    // Utiliser la méthode add() pour ajouter des valeurs dans la 
    // file d'attente prioritaire
    q.add("Alex");
    q.add("Bob");
    q.add("Jean");
    q.add("Ali");
    q.add("Denis");
    System.out.println("File d'attente originale: "+ q);
    // Insère l'élément spécifié dans la file d'attente prioritaire.
    q.offer("Olivier");
    System.out.println("Après l'insertion: "+ q);
 }
}

Sortie:

File d'attente originale: [Alex, Ali, Jean, Bob, Denis]
Après l'insertion: [Alex, Ali, Jean, Bob, Denis, Olivier]
 

Exercice 4:

Écrire un programme Java pour ajouter tous les éléments d’une file d’attente prioritaire à une autre file d’attente prioritaire.

Exemple de sortie:

File d'attente 1:[Alex, Ali, Jean, Bob, Denis]
File d'attente 2:[Thom, Yohan, Thomas]
Nouvelle file d'attente: [Alex, Ali, Jean, Bob, Denis, Thom, Yohan, Thomas]
Solution:

import java.util.PriorityQueue;
public class Main {
  public static void main(String[] args) {
    // Créer une file d'attente prioritaire 1 vide
    PriorityQueue<String> q1 = new PriorityQueue<String>();  
    // Utiliser la méthode add() pour ajouter des valeurs dans la 
    // file d'attente prioritaire 1
    q1.add("Alex");
    q1.add("Bob");
    q1.add("Jean");
    q1.add("Ali");
    q1.add("Denis");
    System.out.println("File d'attente 1:"+ q1);
	
    // Créer une file d'attente prioritaire 2 vide
    PriorityQueue<String> q2 = new PriorityQueue<String>();  
    // Utiliser la méthode add() pour ajouter des valeurs dans la 
    // file d'attente prioritaire 2
    q2.add("Thomas");
    q2.add("Yohan");
    q2.add("Thom");
    System.out.println("File d'attente 2:"+ q2);
	
    q1.addAll(q2);
    System.out.println("Nouvelle file d'attente: "+ q1);
 }
}

Sortie:

File d'attente 1:[Alex, Ali, Jean, Bob, Denis]
File d'attente 2:[Thom, Yohan, Thomas]
Nouvelle file d'attente: [Alex, Ali, Jean, Bob, Denis, Thom, Yohan, Thomas]
 

Exercice 5:

Écrire un programme Java pour supprimer tous les éléments d’une file d’attente prioritaire.

Exemple de sortie:

File d'attente originale:[Alex, Ali, Jean, Bob, Denis]
Nouvelle file d'attente: []
Solution:

import java.util.PriorityQueue;
public class Main {
  public static void main(String[] args) {
    // Créer une file d'attente prioritaire vide
    PriorityQueue<String> q = new PriorityQueue<String>();  
    // Utiliser la méthode add() pour ajouter des valeurs dans la 
    // file d'attente prioritaire
    q.add("Alex");
    q.add("Bob");
    q.add("Jean");
    q.add("Ali");
    q.add("Denis");
    System.out.println("File d'attente originale: "+ q);
	
    // Supprimer tous les éléments de la file d'attente prioritaire
    q.clear();
	
    System.out.println("Nouvelle file d'attente: "+ q);
 }
}

Sortie:

File d'attente originale: [Alex, Ali, Jean, Bob, Denis]
Nouvelle file d'attente: []
 

Exercice 6:

Écrire un programme Java pour compter le nombre d’éléments dans une file d’attente prioritaire.

Exemple de sortie:

File prioritaire originale: [Alex, Ali, Jean, Bob, Denis]
Taille de la file prioritaire: 5
Solution:

import java.util.PriorityQueue;
public class Main {
  public static void main(String[] args) {
    // Créer une file d'attente prioritaire vide
    PriorityQueue<String> q = new PriorityQueue<String>();   
    // Utiliser la méthode add() pour ajouter des valeurs dans la 
    // file d'attente prioritaire
    q.add("Alex");
    q.add("Bob");
    q.add("Jean");
    q.add("Ali");
    q.add("Denis");
    System.out.println("File prioritaire originale:"+ q);
    System.out.println("Taille de la file prioritaire: " + q.size());
  }
}

Sortie:

File prioritaire originale: [Alex, Ali, Jean, Bob, Denis]
Taille de la file prioritaire: 5
 

Exercice 7:

Écrire un programme Java pour comparer deux files d’attente prioritaires.

Exemple de sortie:

File d'attente 1: [Alex, Ali, Jean, Bob, Denis]
File d'attente 2: [Alex, Denis, Yohan, Thomas, Thom]
Oui
Non
Non
Non
Oui
Solution:

import java.util.PriorityQueue;
public class Main {
  public static void main(String[] args) {
    // Créer une file d'attente prioritaire 1 vide
    PriorityQueue<String> q1 = new PriorityQueue<String>();  
    // Utiliser la méthode add() pour ajouter des valeurs dans la 
    // file d'attente prioritaire 1
    q1.add("Alex");
    q1.add("Bob");
    q1.add("Jean");
    q1.add("Ali");
    q1.add("Denis");
    System.out.println("File d'attente 1:"+ q1);
	
    // Créer une file d'attente prioritaire 2 vide
    PriorityQueue<String> q2 = new PriorityQueue<String>();  
    // Utiliser la méthode add() pour ajouter des valeurs dans la 
    // file d'attente prioritaire 2
    q2.add("Alex");
    q2.add("Thomas");
    q2.add("Yohan");
    q2.add("Thom");
    q2.add("Denis");
    System.out.println("File d'attente 2:"+ q2);
	
    // Afficher le résultats de la comparaison
    for (String e : q1){
       System.out.println(q2.contains(e) ? "Oui" : "Non");
    } 
  }
}

Sortie:

File d'attente 1: [Alex, Ali, Jean, Bob, Denis]
File d'attente 2: [Alex, Denis, Yohan, Thomas, Thom]
Oui
Non
Non
Non
Oui
 

Exercice 8:

Écrire un programme Java pour récupérer le premier élément de la file d’attente prioritaire.

Exemple de sortie:

File d'attente originale: [Alex, Ali, Jean, Bob, Denis]
Le premier élément est: Alex
Solution:

import java.util.PriorityQueue;
public class Main {
  public static void main(String[] args) {
    // Créer une file d'attente prioritaire vide
    PriorityQueue<String> q = new PriorityQueue<String>();  
    // Utiliser la méthode add() pour ajouter des valeurs dans la 
    // file d'attente prioritaire
    q.add("Alex");
    q.add("Bob");
    q.add("Jean");
    q.add("Ali");
    q.add("Denis");
    System.out.println("File d'attente originale: "+ q);
    System.out.println("Le premier élément est: "+ q.peek());
 }
}

Sortie:

File d'attente originale: [Alex, Ali, Jean, Bob, Denis]
Le premier élément est: Alex
 

Exercice 9:

Écrire un programme Java pour récupérer et supprimer le premier élément.

Exemple de sortie:

File d'attente originale: [Alex, Ali, Jean, Bob, Denis]
Supprime le 1er élément: Alex
Après suppression du 1er élément: [Ali, Bob, Jean, Denis]
Solution:

import java.util.PriorityQueue;
public class Main {
  public static void main(String[] args) {
    // Créer une file d'attente prioritaire vide
    PriorityQueue<String> q = new PriorityQueue<String>();  
    // Utiliser la méthode add() pour ajouter des valeurs dans la 
    // file d'attente prioritaire
    q.add("Alex");
    q.add("Bob");
    q.add("Jean");
    q.add("Ali");
    q.add("Denis");
    System.out.println("File d'attente originale:"+ q);
    System.out.println("Supprime le 1er élément: "+q.poll());
    System.out.println("Après suppression du 1er élément: "+ q);
 }
}

Sortie:

File d'attente originale: [Alex, Ali, Jean, Bob, Denis]
Supprime le 1er élément: Alex
Après suppression du 1er élément: [Ali, Bob, Jean, Denis]
 

Exercice 10:

Écrire un programme Java pour convertir une file d’attente prioritaire en une ArrayList contenant tous ses éléments.

Exemple de sortie:

File d'attente originale: [Alex, Ali, Jean, Bob, Denis]
ArrayList: [Alex, Ali, Jean, Bob, Denis]
Solution:

import java.util.*;
public class Main {
  public static void main(String[] args) {
    // Créer une file d'attente prioritaire vide
    PriorityQueue<String> q = new PriorityQueue<String>();  
    // Utiliser la méthode add() pour ajouter des valeurs dans la 
    // file d'attente prioritaire
    q.add("Alex");
    q.add("Bob");
    q.add("Jean");
    q.add("Ali");
    q.add("Denis");
    System.out.println("File d'attente originale:"+ q);
    // Convertir une file prioritaire en une ArrayList    
    List<String> arr = new ArrayList<String>(q);
    System.out.println("ArrayList: "+ arr);
 }
}

Sortie:

File d'attente originale: [Alex, Ali, Jean, Bob, Denis]
ArrayList: [Alex, Ali, Jean, Bob, Denis]
 

Éditeur de code Java: Testez votre code en ligne!


QCM-Java

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *