Méthode get() de 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éeindexest 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 :
- Vérifier si l'index est valide (0 ≤ index < size)
- 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)
- Se déplacer nœud par nœud jusqu'à ce que le nœud à la position spécifiée soit trouvé
- Retourne l'élément stocké à ce nœud
Exemples d'utilisation
Utilisation de base
Exemple
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
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
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 :
getFirst(): obtenir le premier élémentgetLast(): obtenir le dernier élémentpeek(): obtenir mais ne pas supprimer le premier élément (renvoie null si la liste est vide)peekFirst(): identique à peek()peekLast(): obtenir mais ne pas supprimer le dernier élément (renvoie null si la liste est vide)
Exemple
Exemple
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
Évitez d'utiliser fréquemment la méthode get(): Comme
LinkedListdeget()la méthode est moins performante, si vous avez besoin d'un accès aléatoire fréquent, envisagez d'utiliserArrayList。Utilisez un itérateur pour parcourir: Lorsque vous devez parcourir
LinkedListune LinkedList, utiliser un itérateur est plus efficace que d'utiliserget()la méthode get() :
Exemple
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());
}
- Vérifiez la plage d'index: Avant d'utiliser
get()la méthode, il est préférable de vérifier si l'indice est valide :
Exemple
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