Méthode clear() de Java LinkedList

Java LinkedList Java LinkedList


clear()La méthode est une méthode couramment utilisée en JavaLinkedListfournie par la classe, utilisée pour supprimer tous les éléments de la liste chaînée. Après avoir appelé cette méthode, la liste chaînée devient une liste vide.

Syntaxe de la méthode

public void clear()

Description de la méthode

clear()Les fonctions principales de la méthode sont :

  1. RemoveLinkedListtous les éléments dans
  2. Réinitialiser la taille de la liste chaînée à 0
  3. N'affecte pas la capacité de la liste chaînée, carLinkedListil n'y a pas de limite de capacité

Exemples d'utilisation

Utilisation de base

Exemple

import java.util.LinkedList;

public class ClearExample {
    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("LinkedList avant effacement : " + fruits);
        System.out.println("Taille avant effacement : " + fruits.size());
       
        // Utilisez la méthode clear() pour vider la liste chaînée
        fruits.clear();
       
        System.out.println("LinkedList après effacement : " + fruits);
        System.out.println("Taille après effacement : " + fruits.size());
    }
}

Sortie :

清空前的链表: [Apple, Banana, Cherry]
清空前的大小: 3
清空后的链表: []
清空后的大小: 0

Principe d'implémentation

Dans l'implémentation de JavaLinkedListimplémentation,clear()la méthode fonctionne selon les étapes suivantes :

  1. Parcourir tous les nœuds de la liste chaînée
  2. Définir les références de prédécesseur et de successeur de chaque nœud à null
  3. Définir le nœud de tête (premier) et le nœud de queue (dernier) de la liste chaînée à null
  4. Définir la taille de la liste chaînée à 0

Cette approche d'implémentation aide le ramasse-miettes à récupérer les objets nœud qui ne sont plus utilisés.


Caractéristiques de la méthode

  1. Complexité temporelle: O(n) - nécessite de parcourir tous les nœuds
  2. Complexité spatiale: O(1) - aucun espace de stockage supplémentaire nécessaire
  3. Sécurité des threads: non thread-safe, nécessite une synchronisation externe dans un environnement multithread
  4. Valeur de retour: Aucune (void)

Notes

  1. Après avoir appeléclear()la méthode, tous les éléments de la liste chaînée seront supprimés et ne pourront pas être récupérés.
  2. Si la liste chaînée est partagée par plusieurs références, toutes les références verront l'effet de l'effacement de la liste chaînée.
  3. Après avoir vidé la liste chaînée, de nouveaux éléments peuvent être ajoutés.
  4. etnew LinkedList<>()Contrairement à la création d'une nouvelle instance,clear()la méthode réutilise l'objet existant.

Comparaison avec d'autres méthodes

Méthode Fonction Complexité temporelle Si elle modifie la liste chaînée d'origine
clear() Effacer tous les éléments O(n) Oui
removeAll() Supprimer tous les éléments de la collection spécifiée O(n*m) Oui
new LinkedList<>() Créer une nouvelle liste chaînée vide O(1) non

Scénarios d'application pratiques

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

  1. Réutilisation des objets de liste chaînée: Lorsque vous devez réutiliser le même objet de liste chaînée
  2. Gestion de la mémoire: Lorsque vous devez libérer la mémoire occupée par la liste chaînée
  3. Réinitialisation de l'état: Lorsque vous devez réinitialiser l'état de la liste chaînée pendant les algorithmes ou le traitement des données

Exemple

// Exemple d'application pratique : traitement de données par lots
LinkedList<Data> dataBuffer = new LinkedList<>();

// Phase 1 : Collecte des données
collectData(dataBuffer);

// Traiter les données
processData(dataBuffer);

// Vider le tampon pour préparer le prochain lot de données
dataBuffer.clear();

// Phase 2 : Collecter de nouvelles données
collectData(dataBuffer);

En utilisant laclear()méthode de manière appropriée, vous pouvez améliorer l'efficacité et la lisibilité de votre code.

Java LinkedList Java LinkedList

Autres extensions