Méthode get() de Java LinkedList

Java LinkedList Java LinkedList


get()La méthode est dans JavaLinkedListune méthode courante fournie par la classe, utilisée pour obtenir l'élément à la position spécifiée dans la liste chaînée.LinkedListse trouve dans le Java Collections FrameworkListune classe d'implémentation de l'interface, qui utilise une structure de données de liste doublement chaînée pour stocker des éléments.

get()La syntaxe de base de la méthode est la suivante :

E get(int index)

Où :

  • EIndique le type des éléments dans la liste chaînée
  • indexest la position de l'élément à obtenir (en comptant à partir de 0)

Fonctionnement de la méthode get()

LinkedListdeget()La méthode obtient l'élément à la position spécifiée en parcourant la liste chaînée. CommeLinkedListelle est implémentée à partir d'une liste chaînée, contrairement àArrayListcelle-ci, elle ne peut pas accéder directement aux éléments de manière aléatoire par index.

Lors de l'appelget(index)la méthode,LinkedListelle va :

  1. Vérifier si l'index est valide (0 ≤ index < size)
  2. Commencer le parcours à partir de la tête ou de la queue de la liste chaînée (partir de l'extrémité la plus proche)
  3. Se déplacer nœud par nœud jusqu'à ce que le nœud à la position spécifiée soit trouvé
  4. Retourne l'élément stocké à ce nœud

Exemples d'utilisation

Utilisation de base

Exemple

import java.util.LinkedList;

public class LinkedListGetExample {
    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");
        fruits.add("Durian");
       
        // Utiliser la méthode get() pour récupérer des éléments
        String firstFruit = fruits.get(0);  // Obtenir le premier élément
        String thirdFruit = fruits.get(2);  // Obtenir le troisième élément
       
        System.out.println(Premier fruit : + firstFruit);  // Sortie : Apple
        System.out.println(Troisième fruit : + thirdFruit);  // Sortie : Cherry
    }
}

Parcourir une LinkedList

Exemple

import java.util.LinkedList;

public class LinkedListTraversal {
    public static void main(String[] args) {
        LinkedList<Integer> numbers = new LinkedList<>();
        numbers.add(10);
        numbers.add(20);
        numbers.add(30);
        numbers.add(40);
       
        // Utiliser la méthode get() pour parcourir la LinkedList
        for (int i = 0; i < numbers.size(); i++) {
            System.out.println(N° + i + élément : + numbers.get(i));
        }
    }
}

Considérations de performance

LinkedListdeget()La complexité temporelle de la méthode est O(n), car elle doit parcourir la liste chaînée depuis la tête ou la queue pour trouver l'élément à la position spécifiée. Cela contraste avecArrayListla complexité temporelle O(1) de cette dernière.

Par conséquent, si vous avez besoin d'un accès aléatoire fréquent aux éléments,ArrayListpeut être un meilleur choix. Alors queLinkedListoffre de meilleures performances lorsqu'il y a des opérations fréquentes d'insertion et de suppression.


Gestion des exceptions

Lors de l'utilisation de laget()méthode, si l'index passé est hors limites (index < 0 ou index ≥ size), elle lèveraIndexOutOfBoundsException。

Exemple d'utilisation sécurisée

Exemple

import java.util.LinkedList;

public class SafeGetExample {
    public static void main(String[] args) {
        LinkedList<String> colors = new LinkedList<>();
        colors.add("Red");
        colors.add("Green");
        colors.add("Blue");
       
        int index = 3;  // Indice hors limites
       
        try {
            String color = colors.get(index);
            System.out.println(color);
        } catch (IndexOutOfBoundsException e) {
            System.out.println(Erreur : Index + index + hors limites. La taille de la liste est + colors.size());
        }
    }
}

Méthodes alternatives

Par ailleursget()la méthode,LinkedListla classe LinkedList fournit également d'autres méthodes pour obtenir des éléments :

  1. getFirst(): obtenir le premier élément
  2. getLast(): obtenir le dernier élément
  3. peek(): obtenir mais ne pas supprimer le premier élément (renvoie null si la liste est vide)
  4. peekFirst(): identique à peek()
  5. peekLast(): obtenir mais ne pas supprimer le dernier élément (renvoie null si la liste est vide)

Exemple

Exemple

import java.util.LinkedList;

public class AlternativeMethods {
    public static void main(String[] args) {
        LinkedList<String> books = new LinkedList<>();
        books.add("Java Programming");
        books.add("Data Structures");
        books.add("Algorithms");
       
        System.out.println(Premier livre : + books.getFirst());
        System.out.println(Dernier livre : + books.getLast());
        System.out.println("peek(): " + books.peek());
        System.out.println("peekLast(): " + books.peekLast());
    }
}

Bonnes pratiques

  1. Évitez d'utiliser fréquemment la méthode get(): CommeLinkedListdeget()la méthode est moins performante, si vous avez besoin d'un accès aléatoire fréquent, envisagez d'utiliserArrayList。

  2. Utilisez un itérateur pour parcourir: Lorsque vous devez parcourirLinkedListune LinkedList, utiliser un itérateur est plus efficace que d'utiliserget()la méthode get() :

Exemple

// Manière plus efficace d'itérer
for (String fruit : fruits) {
    System.out.println(fruit);
}

// Ou utiliser un itérateur
Iterator<String> iterator = fruits.iterator();
while (iterator.hasNext()) {
    System.out.println(iterator.next());
}
  1. Vérifiez la plage d'index: Avant d'utiliserget()la méthode, il est préférable de vérifier si l'indice est valide :

Exemple

if (index >= 0 && index < list.size()) {
    return list.get(index);
} else {
    // Gérer les cas d'index invalides
}

Résumé

LinkedListdeget()La méthode est une méthode de base mais importante ; elle permet d'accéder aux éléments de la liste chaînée par index. Bien que ses performances ne soient pas aussi bonnes queArrayListla méthode correspondante, dans certains scénarios (comme des insertions et suppressions fréquentes)LinkedListelle reste un meilleur choix. Comprendreget()comment la méthode fonctionne et ses caractéristiques de performance peuvent nous aider à faire des choix de structures de données plus raisonnables dans le développement réel.

Java LinkedList Java LinkedList

Autres extensions