CodeGym /Blog Java /Random-FR /Conversion de Array en ArrayList en Java
Auteur
Artem Divertitto
Senior Android Developer at United Tech

Conversion de Array en ArrayList en Java

Publié dans le groupe Random-FR
Salut! Dans la leçon d'aujourd'hui, nous parlerons de comment initialiser un tableau en Java et comment convertir un tableau en une liste de tableaux. Les tableaux sont une extension de la classe Container en Java et peuvent être utiles pour stocker temporairement un ensemble de types de données primitifs lorsque la quantité de données est spécifiquement connue. Mais les tableaux sont statiques lors de leur création, ce qui signifie que lorsque vous en créez un, vous ne pouvez pas modifier le nombre d'éléments qu'il contient. Vous devez vous rappeler comment initialiser un tableau en Java ; ça ressemble à ça :

datatype[] isArray;
Où datatype est n'importe quel type de données primitif comme int, float, long ou même String. Vous pouvez également placer les crochets après la déclaration comme suit :

datatype isArray[];
Alors, comment prendre ce tableau statique avec un nombre défini d'éléments et le convertir en ArrayList ? Eh bien, d'abord, regardons ce qu'est une ArrayList.

La liste de tableaux

Un ArrayList peut avoir un nom similaire à un Array mais il est géré complètement différemment. C'est parce qu'un ArrayList n'étend pas la classe Container, il étend la classe List. Et cela signifie que tout est géré différemment. D'une part, parce qu'il s'agit d'une liste, vous pouvez la manipuler différemment. Vous pouvez augmenter ou diminuer la taille de la ArrayList en utilisant add(element) , qui place l'élément à la fin de la List et augmente la taille de un si nécessaire. Ou vous pouvez utiliser trimToSize()qui supprime tous les index vides à la fin et réduit la ArrayList à sa taille actuelle. Vous pouvez donc voir qu'il y a quelques avantages à utiliser une ArrayList au lieu d'un simple tableau. Ensuite, nous allons vous montrer deux méthodes pour convertir un Array en ArrayList et comment revenir en arrière si nécessaire.

Passer de Array à ArrayList et ArrayList à Array en Java

Alors, disons que vous avez écrit un programme pour tenir un inventaire du nombre d'écrous et de boulons dont votre entreprise dispose pour réparer les arbres à chat. Pendant des années, vous n'avez eu besoin que de 30 types différents d'entre eux, il a donc été facile d'utiliser simplement un tableau pour garder une trace. Mais maintenant, vous avez un nouveau client qui vous demande de stocker 5 types supplémentaires. Comment pouvez-vous changer votre programme et conserver toutes vos données, ET vous éviter d'avoir à le refaire lorsque vous prendrez un autre client ? C'est exact! Une ArrayList ! Alors, comment convertir un tableau Java en ArrayList ? Il existe trois méthodes. Utilisation de la méthode .asList() Les tableaux Java disposent d'un excellent outil que vous pouvez voir lorsque vous regardez l'API appelée .asList() . Donc, vous pouvez simplement écrire ceci:

boltInventory.asList(bolts);
Le problème avec cette méthode est qu'elle ne crée pas une vraie ArrayList. Ce qu'il fait, c'est créer une liste dont la taille est fixe et qui ne peut pas être modifiée. Vous ne pouvez donc toujours pas modifier la taille de manière dynamique. Essayer d'ajouter ou de supprimer des éléments provoquera une exception. Ainsi, bien que cela ait ses utilisations, ce n'est pas une véritable conversion. Mais nous pouvons utiliser cela. Utilisation de .asList() comme argument C'est la deuxième façon de convertir un tableau en liste en Java. Comme la méthode .asList() crée une List, nous pouvons l'utiliser pour passer une référence à notre ArrayList réelle. Voici comment initialiser une ArrayList :

ArrayList<Integer> boltsInventory = new ArrayList<Integer>();
Cela créera un ArrayList qui a dix cellules vides. Cependant, le () à la fin peut être utilisé pour passer un argument pour remplir la ArrayList. Ainsi, en combinant avec la méthode .asList , vous avez :

ArrayList<Integer> boltsInventory = new ArrayList<Integer>(Arrays.asList(bolts));
Cela passe la liste créée par la méthode .asList () dans la ArrayList, vous pouvez donc maintenant la manipuler dynamiquement selon vos besoins. Utilisation de la méthode Collections.addAll() Une autre façon de convertir un Array en ArrayList en Java consiste à utiliser cette méthode. Il passe le contenu du Array à ArrayList. La syntaxe générique de cette méthode est :

Collections.addAll(c, T);
c est la destination et T est ce qui est transmis. Donc, pour notre exemple, la syntaxe ressemblerait à ceci :

ArrayList<Integer> boltsInventory = new ArrayList<Integer>():
Collections.addAll(boltsInventory, bolts);
Cela transmettra tout le contenu des boulons Array à la nouvelle ArrayList. Conversion d'une ArrayList en Array Il peut arriver que vous deviez convertir une ArrayList en Array en Java. Si vous le faites, ArrayList a une méthode .toArray(a) , où a est la destination. Ainsi, pour notre exemple, la syntaxe serait :

Integer boltsInventoryArray[] = new Integer{boltsInventory.size()];
// this ensures the newly created array is of the same size as the ArrayList
boltsInventoryArray = boltsInventory.toArray(boltsInventoryArray);
Lorsque vous modifiez une liste en tableau en Java comme celui-ci, vous créez une copie complète. C'est-à-dire que toutes les références à Array sont différentes des références à ArrayList. Ainsi, vous pouvez manipuler les données du tableau sans modifier les données stockées dans le ArrayList. Il est utile de convertir une liste Java en tableau lorsque vous devez tester des données.

Conclusion

Les tableaux sont très utiles pour un accès rapide et une manipulation rapide d'ensembles de données plus petits, mais l'impossibilité de modifier leur taille signifie qu'ils perdent rapidement leur efficacité pour une utilisation à long terme. Une ArrayList vous offre cette flexibilité et la possibilité d'insérer et de supprimer des nœuds selon vos besoins. Apprendre à convertir un tableau Java en liste améliorera l'efficacité globale de vos programmes et améliorera également leur exécution.
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION