Java

Les listes chaînées en Java - java.util.LinkedList

LinkedList sont des structures de données linéaires où les éléments ne sont pas stockés dans des emplacements contigus et chaque élément est un objet séparé avec une partie de données et une partie d'adresse. Les éléments sont liés à l'aide de pointeurs et d'adresses. Chaque élément est appelé un nœud.

En raison de la dynamicité et de la facilité des insertions et des suppressions, elles sont préférées aux tableaux. Il présente également peu d'inconvénients, car les nœuds ne sont pas accessibles directement. Nous devons commencer par la tête et suivre le lien pour atteindre le nœud auquel nous souhaitons accéder.

La classe LinkedList hérite de AbstractSequentialList et implémente l'interface List.

La classe LinkedList se compose également de divers constructeurs et méthodes, à l'instar d'autres collections java.

Pour utiliser la classe LinkedList, vous devez utiliser l'une des instructions d'importation suivantes:

                                import java.util.LinkedList;
                                import java.util.*;
                            

Ensuite, pour déclarer une LinkedList, vous pouvez utiliser le constructeur par défaut, comme dans l’exemple suivant qui déclare une LinkedList de String

                                LinkedList< String> names = new LinkedList< String>();
                            

vous pouvez aussi le constructeur LinkedList(Collection c) pour créer une liste chaînée à partir d'une autre collection

Le tableau suivant résume quelques méthodes utiles de la classe LinkedList.

MéthodeDescription
void add(int index, Object element)Cette méthode insère l'élément spécifié à la position spécifiée dans cette liste.
boolean add(Object o)Cette méthode ajoute l'élément spécifié à la fin de cette liste.
boolean addAll(Collection c)Cette méthode ajoute tous les éléments de la collection spécifiée à la fin de cette liste, dans l’ordre dans lequel ils sont renvoyés par l’itérateur de la collection spécifiée.
boolean addAll(int index, Collection c)Cette méthode Insère tous les éléments de la collection spécifiée dans cette liste, en commençant à la position spécifiée.
void addFirst(Object o)Cette méthode insère l'élément spécifié au début de cette liste.
void addLast(Object o)Cette méthode ajoute l'élément spécifié à la fin de cette liste.
void clear()Cette méthode supprime tous les éléments de cette liste.
Object get(int index)Cette méthode retourne l'élément à la position spécifiée dans cette liste.
Object getFirst()Cette méthode retourne le premier élément de cette liste. Exception NoSuchElementException si cette liste est vide.
Object getLast()Cette méthode retourne le dernier élément de cette liste. Exception NoSuchElementException si cette liste est vide.
int indexOf(Object o)Cette méthode retourne l'index de la première occurrence de l'élément spécifié dans cette liste ou -1 si cette liste ne contient pas l'élément.
int lastIndexOf(Object o)Cette méthode retourne l'index de la dernière occurrence de l'élément spécifié dans cette liste, ou -1 si cette liste ne contient pas l'élément.
Object remove()Cette méthode récupère et supprime la tête (premier élément) de la liste.
Object remove(int index)Cette méthode supprime l'élément à la position spécifiée dans cette liste. Exception NoSuchElementException si cette liste est vide.
boolean remove(Object o)Cette méthode supprime la première occurrence de l'élément spécifié de cette liste, si elle est présente. Exception NoSuchElementException si cette liste est vide.
Object removeFirst()Cette méthode supprime et retourne le premier élément de cette liste. Exception NoSuchElementException si cette liste est vide.
Object removeLast()Cette méthode supprime et retourne le dernier élément de cette liste. Exception NoSuchElementException si cette liste est vide.
Object set(int index, Object element)Cette méthode remplace l'élément à la position spécifiée dans cette liste par l'élément spécifié.
int size()Cette méthode renvoie le nombre d'éléments dans cette liste.
Object[] toArray()Cette méthode retourne un tableau contenant tous les éléments de cette liste dans l'ordre approprié (du premier au dernier élément).
Object[] toArray(Object[] a)Cette méthode retourne un tableau contenant tous les éléments de cette liste dans l'ordre approprié (du premier au dernier élément). le type d'exécution du tableau retourné est celui du tableau spécifié.

Avec chacune des ces méthodes vous recevez un message d'erreur si le numéro de position n'est pas valide pour LinkedList.

Exemple :
                                    import java.util.LinkedList;

                                    public class Test {
                                    
                                        public static void main(String args[]) {
                                            // créer une liste chaînée (LinkedList)
                                            LinkedList< String> link = new LinkedList< String>();
                                    
                                            // ajouter des éléments à LinkedList
                                            link.add("Mostafa");
                                            link.add("Ismail");
                                            link.add("Dounia");
                                            link.add("Badr");
                                            link.add("Omar");
                                            link.addLast("Mohamed");
                                            link.addFirst("Fatima");
                                            link.add(1, "Haitam");
                                            System.out.println("Contenu original de link: " + link);
                                    
                                            // supprimer des éléments de la liste
                                            link.remove("Badr");
                                            link.remove(2);
                                            System.out.println("Contenu de link après suppression: " + link);
                                    
                                            // supprimer le premier et le dernier élément
                                            link.removeFirst();
                                            link.removeLast();
                                            System.out.println("link après la suppression du premier et du dernier: " + link);
                                    
                                            // obtenir et définir une valeur
                                            Object val = link.get(2);
                                            link.set(2, (String) val + " est modifié");
                                            System.out.println("après changement : " + link);
                                        }
                                    }
                            
Contenu original de link: [Fatima, Haitam, Mostafa, Ismail, Dounia, Badr, Omar, Mohamed]
Contenu de link après suppression: [Fatima, Haitam, Ismail, Dounia, Omar, Mohamed]
link après la suppression du premier et du dernier: [Haitam, Ismail, Dounia, Omar]
après changement : [Haitam, Ismail, Dounia est modifié, Omar]

Partager ce cours avec tes amis :

Rédigé par M. ESSADDOUKI

Learning a new programming language is an easy thing, but the most difficult thing is how to design efficient algorithms for real-world problems, so don't be a programmer, be a problems solver.

Cours Similaires :