Méthode poll() de 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, renvoie
null
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
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
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.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 :
- Traitement de file d'attente: Lors de l'utilisation
LinkedListcomme une file d'attente,poll()est l'opération standard de retrait de la file d'attente. - Ordonnancement des tâches: Traiter une liste de tâches, en prenant la première tâche à chaque fois pour l'exécuter.
- 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.
- Traitement des messages: Dans une file de messages, retirer et traiter le message suivant.
Notes
- Gestion des listes vides: Contrairement à la
remove()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. - Types génériques: Assurez-vous que le type de valeur de retour est géré correctement pour éviter
ClassCastException。 - 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