Différences entre Array et ArrayList

Array et ArrayList sont des structures de données importantes, qui sont utilisées pour stocker un certain nombre d'éléments et les traiter. Mais il existe des différences clés entre eux. Un bon programmeur doit être conscient des comparaisons entre eux afin qu'il puisse décider efficacement quoi utiliser quand et pourquoi.

Array

Le tableau est une structure de données où nous pouvons stocker des éléments d'une taille donnée d'un type similaire. Par exemple, un tableau de type entier, un tableau de type chaîne, etc. Par conséquent, un tableau normal en Java est une structure de données statique.

Liste des tableaux

Un ArrayList est une structure de données dynamique, où des éléments peuvent être ajoutés et supprimés de la liste. Donc, si vous n'êtes pas sûr du nombre d'éléments qui seront présents dans votre tableau, cette structure de données dynamique vous fera économiser.

Dans cet article, nous discuterons des différences entre Array et ArrayList en java.

Exemple pour comprendre à la fois Array et ArrayList

Le tableau est une structure de données où nous pouvons stocker des éléments d'une taille fixe donnée d'un type similaire.

Exemple de code:

Créons un tableau de cinq éléments de type int. Nous allons les parcourir en utilisant for loop

Un ArrayList est une structure de données dynamique, où des éléments peuvent être ajoutés et supprimés de la liste. Donc, si vous n'êtes pas sûr du nombre d'éléments qui seront présents dans votre tableau, cette structure de données dynamique vous fera économiser.

Exemple de code:

Différences face à face entre Array et ArrayList (Infographie)

Ci-dessous, les principales différences entre Array et ArrayList:

Différences clés entre Array et ArrayList en Java

1. Souplesse

Un tableau est une structure de données statique. Une fois que vous avez défini la taille du tableau, vous ne pouvez pas modifier la valeur de sa taille. Par conséquent, un tableau normal en Java est une structure de données statique, car la taille initiale du tableau est fixe.

D'un autre côté, ArrayList est de taille flexible. Vous pouvez ajouter ou supprimer des éléments de la liste selon votre convenance. Lors de la suppression d'éléments de ArrayList, nous attribuons null à l'index dont la valeur est supprimée et la valeur d'index entière est déclassée automatiquement de un. Il en va de même pour l'addition également.

2. Mise en œuvre

Un tableau est une structure de données où nous pouvons stocker des éléments d'une taille fixe donnée d'un type similaire. Un ArrayList est une structure de données dynamique, où des éléments peuvent être ajoutés et supprimés de la liste. En fait, ArrayList est implémenté à l'aide d'un tableau en Java. Vous devez importer le package java.util.ArrayList pour utiliser la méthode ArrayList () pour créer un objet ArrayList.

Exemple d'extrait de code de tableau

Exemple d'extrait de code d'ArrayList

3. Performance

Bien qu'ArrayList soit essentiellement basé sur Array, nous constatons des différences de performances entre eux. Cela est dû au type de stockage et aux fonctionnalités de ArrayList. Nous constatons des différences de performances en termes de temps CPU et d'utilisation de la mémoire. En fonction des opérations que vous effectuez, les performances d'Array et d'ArrayList varient:

ArrayList nécessite plus de mémoire à des fins de stockage par rapport à un tableau. En effet, le stockage d'objets similaires nécessite plus de mémoire que le stockage de variables de type primitif similaires.

opération resize (): ArrayList utilise un redimensionnement automatique, où un tableau temporaire est créé pour copier des éléments de l'ancien tableau vers un nouveau tableau. Cela ralentit les performances globales.

Opération get (): pour l'accès basé sur un index, ArrayList et array ont les mêmes performances, car cela nécessite un temps constant.

opération add (): nous voyons ici la principale différence car l'ajout d'un nouvel élément dans ArrayList nécessite deux opérations en interne: copier et redimensionner. L'ajout dans ArrayList crée un nouveau tableau en arrière-plan et copie les éléments de l'ancien vers un nouveau tableau.

4. Primitifs

Un tableau peut stocker à la fois des types d'éléments primitifs et d'objets. D'un autre côté, une ArrayList ne peut pas stocker de types primitifs; il ne peut stocker que des objets du même type.

Alors, comment pouvons-nous stocker des valeurs entières dans une ArrayList?

La réponse est la capacité de mise en boîte automatique de JVM. Autoboxing convertit en interne la primitive en ses objets équivalents.

Par exemple:

Par conséquent, l'autoboxing fonctionne en interne en dessous des choses

5. Type de sécurité

Un tableau ne peut stocker que des éléments d'un type similaire. Si vous souhaitez stocker différents types d'éléments dans un tableau autre que ceux spécifiés, il lèvera ArrayStoreException lors de la création de l'objet de ce tableau. Cette exception sera levée lors de l'exécution, car le tableau n'est donc pas de type sécurisé; aucune vérification à la compilation n'est là pour le tableau.

Par exemple:

D'un autre côté, ArrayList est de type sécurisé, car il garantit la sécurité de type par les génériques. Les génériques permettent au compilateur de vérifier s'il y a un décalage dans le type lors de la compilation.

6. Itération des valeurs

ArrayList utilise la méthode iterator () pour créer la collection. Ensuite, en utilisant une boucle while, nous parcourrons les éléments un par un et imprimerons les valeurs.

D'un autre côté, nous pouvons utiliser for loop ou pour chaque boucle pour parcourir un tableau.

7. Longueur

Dans de nombreux cas d'utilisation, nous pourrions avoir besoin d'obtenir la taille de l'ensemble du tableau. Dans le cas d'Arraylist, ce calcul est assez simple. Nous pouvons obtenir une longueur d'ArrayList en utilisant la méthode size ().

D'un autre côté, chaque objet tableau a la variable de longueur, qui renvoie la longueur du tableau.

Par exemple:

8. Ajout d'éléments

L'ajout ou l'insertion est possible dans ArrayList car il s'agit d'une structure de données dynamique. Nous pouvons utiliser la méthode add () pour insérer des éléments dans une ArrayList après sa création.

En revanche, la taille du tableau est fixe. Cependant, nous pouvons insérer des éléments dans un tableau par affectation. Nous ne pouvons pas ajouter dynamiquement de nouveaux éléments au-delà de la taille d'un tableau.

Par exemple:

9. Dimension

ArrayList est unidimensionnel. Alors que le tableau peut être multidimensionnel.

Par exemple:

Array et ArrayList - Tableau de comparaison

Discutons de la meilleure comparaison entre Array et ArrayList

Base de comparaisonArrayListe des tableaux
La flexibilitéLe tableau est une structure de données statiqueArrayList est une structure de données dynamique
Primitifspeut stocker des éléments de type primitif et objetne peut stocker que des objets du même type.
Type de sécuritéLe tableau ne peut stocker que des éléments d'un type similaire. Sinon, il lèvera ArrayStoreException lors de la création de l'objet de ce tableau.ArrayList est de type sécurisé, car il garantit la sécurité de type par les génériques.
Itération des valeursutiliser pour boucle ou pour chaque boucle pour réaliser l'itération.Utilise la méthode iterator () pour créer la collection
Ajout d'élémentspeut insérer des éléments dans un tableau par affectation.utiliser la méthode add () pour insérer des éléments dans une liste de tableaux

Dimensionmultidimensionnelunidimensionnel

Conclusion-Array vs ArrayList

Tout cela concerne la distinction importante entre un tableau et un ArrayList en Java. La principale distinction vitale que vous devez garder à l'esprit est que le tableau est statique tandis que ArrayList est de nature dynamique. Sur la base de cette distinction, vous devez utiliser un tableau si vous reconnaissez les dimensions à venir, si vous n'êtes pas sûr, utilisez simplement ArrayList.

Articles recommandés

Ceci est un guide pour Array vs ArrayList. Nous discutons ici des différences clés entre Array et ArrayList avec des infographies, des exemples et un tableau de comparaison. Vous pouvez également consulter nos autres articles suggérés pour en savoir plus -

  1. Java Vector vs ArrayList
  2. Tableau C # vs liste
  3. C vs Java
  4. Avantages de la baie
  5. Itérateur en Java
  6. Avantages des boucles Python | Exemple