Méthode peek() de Java LinkedList
peek()La méthode est, en Java,LinkedListune méthode très utile fournie par la classe. Elle est utilisée pour récupérer sans supprimer le premier élément (élément de tête) de la liste chaînée. Cette méthode appartient àQueueaux opérations de l'interface,LinkedListet LinkedList implémente cette interface.
Syntaxe de la méthode:
public E peek()
Valeur de retour:
- Si la liste chaînée n'est pas vide, renvoie le premier élément de la liste chaînée
- Si la liste chaînée est vide, renvoie null
null
Caractéristiques de la méthode
Opération non destructive
peek()La méthode ne fait que « consulter » le premier élément de la liste chaînée sans le supprimer. Cela diffère depoll()ouremove()la méthode remove(), qui supprime l'élément.
Sécurité null
Lorsque la liste chaînée est vide,peek()peek() renvoie nullnullet ne lève pas d'exception, ce qui la rend plusgetFirst()ouelement()sûre que element() dans certains scénarios.
Complexité temporelle
PuisqueLinkedListLinkedList est implémentée sur la base d'une liste doublement chaînée,peek()la complexité temporelle de la méthode est O(1), car elle ne doit accéder qu'au nœud de tête.
Exemples d’utilisation
Exemple de base
Exemple
public class PeekExample {
public static void main(String[] args) {
LinkedList<String> fruits = new LinkedList<>();
fruits.add("Pomme");
fruits.add("Banane");
fruits.add("Cherry");
// Utiliser peek() pour voir le premier élément
String firstFruit = fruits.peek();
System.out.println("Premier fruit : " + firstFruit); // Sortie : Premier fruit : Apple
System.out.println("LinkedList après peek() : " + fruits); // Sortie : [Apple, Banana, Cherry]
}
}
Exemple de liste chaînée vide
Exemple
public class EmptyListPeek {
public static void main(String[] args) {
LinkedList<Integer> numbers = new LinkedList<>();
Integer firstNumber = numbers.peek();
System.out.println("Premier nombre : " + firstNumber); // Sortie : Premier nombre : null
}
}
Comparaison avec d'autres méthodes similaires
peek() vs getFirst()
| Méthode | Comportement sur une liste chaînée vide | Lève une exception |
|---|---|---|
| peek() | Retourne null | non |
| getFirst() | Lève NoSuchElementException | Oui |
4.2 peek() vs element()
| Méthode | Comportement sur une liste chaînée vide | Lève une exception |
|---|---|---|
| peek() | Retourne null | non |
| element() | Lève NoSuchElementException | Oui |
4.3 peek() vs poll()
| Méthode | Indique s'il supprime des éléments | Comportement sur une liste chaînée vide |
|---|---|---|
| peek() | non | Retourne null |
| poll() | Oui | Retourne null |
Scénarios d'application pratiques
Traitement de file de messages
Lors du traitement d'une file de messages, nous devons souvent consulter le message en tête de file sans le supprimer :
Exemple
// ... ajouter des messages à la file
// Vérifier mais ne pas supprimer le premier message
Message nextMessage = messageQueue.peek();
if (nextMessage != null && nextMessage.isHighPriority()) {
// Traiter les messages de haute priorité
}
Système d'ordonnancement des tâches
Dans un système d'ordonnancement des tâches,peek()peek() peut être utilisé pour vérifier la prochaine tâche à exécuter :
Exemple
// ... ajouter des tâches à la file d'attente
Task nextTask = taskQueue.peek();
if (nextTask != null && nextTask.isReadyToExecute()) {
// Exécuter la tâche
}
Historique de navigation
Simuler l'affichage de la page la plus récemment visitée dans un navigateur sans la retirer de l'historique :
Exemple
// ... ajouter des enregistrements de visite
String lastVisited = browserHistory.peek();
System.out.println("Page la plus récemment visitée : " + lastVisited);
Notes
Gestion des valeurs nulles: Comme
peek()peek() peut retourner nullnull, vous devez effectuer une vérification de nullité avant d’utiliser la valeur de retour pour éviterNullPointerException。Environnement concurrent:
LinkedListLinkedList n’est pas thread-safe. Si elle est utilisée dans un environnement multithread,peek(), des mesures de synchronisation supplémentaires sont nécessaires.Considérations de performance: Bien que
peek()l’opération elle-même est O(1), si elle est appelée fréquemment avec d’autres opérations, vous devrez peut-être envisager des structures de données plus efficaces.Comparaison avec les opérations de pile: Lorsque
LinkedListLinkedList est utilisée comme une pile,peek()peek() consulte le premier élément (sommet de la pile), ce qui est identique àStackcelui de la classe Stackpeek()Comportement de la méthode peek().
Java LinkedList