Java >> Tutoriel Java >  >> Tag >> Queue

Différences entre les méthodes poll() et remove() de Queue Interface en Java

Méthodes poll() vs remove() de l'interface de file d'attente

Ici, nous verrons comment la méthode poll() diffère de la méthode remove() de l'interface Queue en Java ?

méthode poll()

  • Cette méthode est disponible dans le package java.util.
  • Cette méthode est utilisée pour récupérer l'élément principal de la file d'attente ou en d'autres termes, elle est utilisée pour récupérer le premier élément ou l'élément initial de la file d'attente.
  • Dans le cas de la méthode poll(), elle récupère l'élément principal de la file d'attente, puis supprime l'élément principal de la file d'attente.
  • Dans le cas de la méthode poll(), si la file d'attente est vide, elle renverra null mais ne lèvera pas d'exception.
  • La syntaxe de cette méthode est donnée ci-dessous :
            
    public PriorityQueue poll(){
    }
    
  • Nous ne transmettons aucun objet en tant que paramètre dans la méthode de la file d'attente.
  • Le type de retour de cette méthode n'est pas vide, ce qui signifie que cette méthode renvoie le premier élément de la file d'attente.

Exemple (cas 1) :

// Java program to demonstrate the behavior of poll() method 
// of Queue in case of if Queue is not empty

import java.util.*;

class QueueClass {
    public static void main(String[] args) {
        // Creating an instance of PriorityQueue class
        PriorityQueue pq = new PriorityQueue();

        // By using add() method to add elements in the Queue
        pq.add(10);
        pq.add(20);
        pq.add(30);
        pq.add(40);
        pq.add(50);

        // Display Current list of the Queue
        System.out.println("Current Queue List:" + pq);

        // By using poll() method of Queue will retrieve 
        // head element with removing head element of the Queue
        System.out.println("The first element of the Queue :" + pq.poll());

        // Display New Queue list of the Queue after implementing poll() method
        System.out.println("New Queue List :" + pq);
    }
}

Sortie

E:\Programs>javac QueueClass.java

E:\Programs>java QueueClass
Current Queue List:[10, 20, 30, 40, 50]
The first element of the Queue :10
New Queue List :[20, 40, 30, 50]

Exemple (Cas 2 :)

// Java program to demonstrate the behavior of poll() method 
// of Queue in case of if Queue is empty

import java.util.*;

class QueueClass {
    public static void main(String[] args) {
        // Creating an instance of PriorityQueue class
        PriorityQueue pq = new PriorityQueue();

        // Display Current list of the Queue
        System.out.println("Current Queue List:" + pq);

        // By using poll() method of Queue will return null if queue is empty
        System.out.println("The result of Queue :" + pq.poll());

        // Display New Queue list of the Queue after implementing poll() method
        System.out.println("New Queue List :" + pq);
    }
}

Sortie

E:\Programs>javac QueueClass.java

E:\Programs>java QueueClass
Current Queue List:[]
The first element of the Queue :null
New Queue List :[]

Maintenant, nous allons voir comment la méthode remove() diffère de la méthode poll() de l'interface Queue ?

Publicité

méthode remove()

  • Cette méthode est disponible dans le package java.util.
  • Cette méthode est utilisée pour supprimer l'élément principal de la file d'attente et récupérer le premier élément de la file d'attente comme la méthode poll().
  • Dans le cas de la méthode remove(), elle récupère l'élément principal et supprime également le premier élément de la file d'attente en appelant la méthode remove().
  • Dans le cas de la méthode remove(), si la file d'attente est vide, dans ce cas, elle lève une exception NoSuchElementFoundException mais elle ne renvoie pas null comme la méthode poll().
  • Nous ne transmettons aucun objet en tant que paramètre dans la méthode de la file d'attente.
  • La syntaxe de la méthode est donnée ci-dessous :
        public boolean remove(){}
    
  • Le type de retour de cette méthode n'est pas void, ce qui signifie que le type de retour de cette méthode est booléen donc elle retourne true après avoir supprimé l'élément sinon return false.

Exemple (cas 1) :

// Java program to demonstrate the behavior of remove() method 
// of Queue in case of if Queue is not empty

import java.util.*;

class QueueClass {
    public static void main(String[] args) {
        // Creating an instance of PriorityQueue class
        PriorityQueue pq = new PriorityQueue();

        // By using add() method to add elements in the Queue
        pq.add(10);
        pq.add(20);
        pq.add(30);
        pq.add(40);
        pq.add(50);

        // Display Current list of the Queue
        System.out.println("Current Queue List:" + pq);

        // By using remove() method of Queue will retrieve 
        // head element with removing head element of the Queue
        System.out.println("The first element of the Queue :" + pq.remove());

        // Display New Queue list of the Queue after 
        // implementing remove() method
        System.out.println("New Queue List :" + pq);
    }
}

Sortie

E:\Programs>javac QueueClass.java

E:\Programs>java QueueClass
Current Queue List:[10, 20, 30, 40, 50]
The first element of the Queue :10
New Queue List :[20, 40, 30, 50]

Exemple (cas 2) :

// Java program to demonstrate the behavior of remove() method 
// of Queue in case of if Queue is empty

import java.util.*;

class QueueClass {
    public static void main(String[] args) {
        // Creating an instance of PriorityQueue class
        PriorityQueue pq = new PriorityQueue();

        // Display Current list of the Queue
        System.out.println("Current Queue List:" + pq);

        // By using remove() method of Queue will throw 
        // an exception if queue is empty
        System.out.println("The result of Queue :" + pq.remove());

        // Display New Queue list of the Queue after 
        // implementing remove() method
        System.out.println("New Queue List :" + pq);
    }
}

Sortie

E:\Programs>javac QueueClass.java

E:\Programs>java QueueClass
Current Queue List:[]
Exception in thread "main" java.util.NoSuchElementException
        at java.util.AbstractQueue.remove(AbstractQueue.java:117)
        at QueueClass.main(QueueClass.java:20)

Balise Java