Méthode poll() de Java LinkedList

Java LinkedList Java LinkedList


poll()La méthode est dans JavaLinkedListune méthode très utile fournie par la classe, utilisée pour récupérer et supprimer le premier élément (élément de tête) de la liste. Cette méthode appartient àQueuepartie de l'interface,LinkedListimplémente cette interface, donc il peut être utilisé comme une file.

Syntaxe de la méthode:

public E poll()

Valeur de retour:

  • Si la liste n'est pas vide, renvoie le premier élément de la liste
  • Si la liste est vide, renvoienull

Caractéristiques de la méthode

Comparaison avec des méthodes similaires

Dans l'implémentation de JavaLinkedListil existe plusieurs méthodes similaires qui peuvent être utilisées pour récupérer et supprimer l'élément de tête :

Méthode Description du comportement Comportement lorsque la liste est vide
poll() Récupère et supprime l'élément de tête Retourne null
remove() Récupère et supprime l'élément de tête Lève NoSuchElementException
pop() Récupère et supprime l'élément de tête (opération de pile) Lève NoSuchElementException
pollFirst() Récupère et supprime le premier élément (identique à poll()) Retourne null

Complexité temporelle

poll()La complexité temporelle de la méthode est O(1), car elle supprime et renvoie uniquement le premier élément de la liste sans parcourir toute la liste.


Exemples d'utilisation

Utilisation de base

Exemple

import java.util.LinkedList;

public class PollExample {
    public static void main(String[] args) {
        // Créer une LinkedList
        LinkedList<String> fruits = new LinkedList<>();
       
        // Ajouter des éléments
        fruits.add("Pomme");
        fruits.add("Banane");
        fruits.add("Cherry");
       
        System.out.println("Liste originale : " + fruits);  // Sortie : [Apple, Banana, Cherry]
       
        // Utiliser la méthode poll()
        String firstFruit = fruits.poll();
       
        System.out.println("Élément supprimé : " + firstFruit);  // Sortie : Apple
        System.out.println("Liste mise à jour : " + fruits);    // Sortie : [Banana, Cherry]
    }
}

Gestion des listes vides

Exemple

import java.util.LinkedList;

public class EmptyListExample {
    public static void main(String[] args) {
        LinkedList<String> emptyList = new LinkedList<>();
       
        // Utiliser poll() sur une liste vide
        String result = emptyList.poll();
       
        System.out.println("Résultat : " + result);  // Sortie : null
    }
}

Utilisation dans les opérations de file d'attente

Exemple

import java.util.LinkedList;
import java.util.Queue;

public class QueueExample {
    public static void main(String[] args) {
        // Utiliser LinkedList comme une file d'attente
        Queue<Integer> queue = new LinkedList<>();
       
        // Opération d'enfilement
        queue.offer(10);
        queue.offer(20);
        queue.offer(30);
       
        System.out.println("Contenu de la file d'attente : " + queue);  // Sortie : [10, 20, 30]
       
        // Opération de retrait
        while (!queue.isEmpty()) {
            int num = queue.poll();
            System.out.println("Traité : " + num);
        }
       
        System.out.println("État final de la file d'attente : " + queue);  // Sortie : []
    }
}

Scénarios d'application pratiques

poll()La méthode est particulièrement utile dans les scénarios suivants :

  1. Traitement de file d'attente: Lors de l'utilisationLinkedListcomme une file d'attente,poll()est l'opération standard de retrait de la file d'attente.
  2. Ordonnancement des tâches: Traiter une liste de tâches, en prenant la première tâche à chaque fois pour l'exécuter.
  3. Recherche en largeur: Dans les algorithmes de parcours de graphes ou d'arbres, utilisé pour prendre le prochain nœud à traiter depuis la file d'attente.
  4. Traitement des messages: Dans une file de messages, retirer et traiter le message suivant.

Notes

  1. Gestion des listes vides: Contrairement à laremove()méthode,poll()ne lève pas d'exception lorsque la liste est vide, mais renvoie à la placenull. Cela le rend plus adapté à une utilisation lorsque vous n'êtes pas sûr que la liste soit vide.
  2. Types génériques: Assurez-vous que le type de valeur de retour est géré correctement pour éviterClassCastException。
  3. Environnement concurrent:LinkedListn'est pas thread-safe ; s'il est utilisé dans un environnement multithread, des problèmes de synchronisation doivent être pris en compte.

En maîtrisant lapoll()méthode, vous pouvez utiliser plus efficacementLinkedListcomme une file d'attente et écrire du code Java plus propre et plus robuste.

Java LinkedList Java LinkedList

Autres extensions