Tableau de liste chaînée en Java
- Démonstration du tableau de listes chaînées à l’aide d’un tableau traditionnel en Java
- Démonstration du tableau de listes chaînées à l’aide du constructeur en Java
Une LinkedList
est la structure de données séquentielle et linéaire qui stocke les éléments dans un ordre défini. La structure de données fait partie de l’interface Collection
et est présente dans le package java.util
.
La liste chaînée comporte également des éléments stockés dans la partie node
. Chaque nœud a une partie data
pour le stockage des éléments et le pointeur
pour conserver l’adresse du nœud suivant. Les éléments de la liste ne sont pas présents dans des emplacements mémoire contigus.
Démonstration du tableau de listes chaînées à l’aide d’un tableau traditionnel en Java
Vous trouverez ci-dessous le bloc de code qui crée un tableau de listes chaînées à l’aide de boucles.
import java.util.LinkedList;
public class Main {
public static void main(String[] args) {
LinkedList[] list = new LinkedList[5];
for (int i = 0; i < 5; i++) {
if (list[i] == null) {
list[i] = new LinkedList();
int temp = i;
for (int j = 0; j < temp + 1; j++) {
list[i].add(j);
}
}
System.out.print(list[i]);
}
}
}
Dans le bloc ci-dessus, l’instruction new LinkedList[5]
crée une liste chaînée. Le nouveau mot-clé appelle le constructeur public de la liste chaînée de classes. La valeur 5
démontre la taille du tableau, nous créons donc un tableau de 5 listes chaînées.
Sur la variable de liste, la boucle s’exécute pour instancier une nouvelle liste chaînée sur chaque nœud. Ainsi, une boucle for
est appliquée avec une condition de valeur entière inférieure à 5
commence à s’exécuter. En interne, il vérifie la condition si la valeur dans le nœud est null
; sinon, un nouveau nœud Liste chaînée
est instancié.
Encore une fois, une boucle for
s’habitue à remplir les éléments de la liste. La méthode add
permet d’ajouter les éléments en fin de liste. La méthode est issue de la classe LinkedList
et renvoie la valeur booléenne
. Il renvoie true
si la fonction add
est effectuée avec succès, sinon false
.
De même, l’itération continue et la valeur de chaque nœud est remplie avec la liste chaînée. La même chose est également imprimée à l’intérieur de la boucle pour vérifier les éléments présents dans les nœuds.
Production:
[0][0, 1][0, 1, 2][0, 1, 2, 3][0, 1, 2, 3, 4]
Démonstration du tableau de listes chaînées à l’aide du constructeur en Java
Vous trouverez ci-dessous le bloc de code qui utilise les fonctionnalités et fonctions de Java 8 pour créer un tableau de listes chaînées.
import java.util.ArrayList;
import java.util.LinkedList;
public class main {
public static void main(String[] args) {
LinkedList list1 = new LinkedList<String>();
list1.add("l1_value1");
list1.add("l1_value2");
LinkedList list2 = new LinkedList();
list2.add("l2_value1");
list2.add("l2_value2");
LinkedList list3 = new LinkedList();
list3.add("l3_value1");
list3.add("l3_value2");
ArrayList<LinkedList> arrayList = new ArrayList<LinkedList>();
arrayList.add(list1);
arrayList.add(list2);
arrayList.add(list1);
arrayList.forEach(System.out::println);
System.out.println("Classname: " + arrayList.get(0).getClass());
}
}
Dans le bloc de code ci-dessus, la méthode main
contient la logique réelle pour l’exécution du code.
Tout d’abord, une liste chaînée est créée à l’aide du mot-clé new
. Le mot-clé invoque le constructeur public de la classe LinkedList
. Les valeurs de chaîne sont insérées dans la liste. De même, deux autres listes sont créées.
Enfin, une liste de tableaux est instanciée. Les variables de liste formées sont ajoutées dans l’instance de liste de tableau. L’itération de l’instance de liste se fait à l’aide de la fonction forEach
. De plus, une instruction print
avec l’opérateur de référence de méthode ::
est ajoutée pour afficher le nom du type d’instance présent dans la liste de tableaux.
La sortie du programme ci-dessus est montrée ci-dessous.
[l1_value1, l1_value2][l2_value1, l2_value2][l1_value1, l1_value2] Classname
: class java.util.LinkedList
Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.
LinkedIn