Java >> Tutoriel Java >  >> Tag >> ArrayList

Différence entre Array et ArrayList

Au cas où vous seriez confus quant à la différence entre Array et ArrayList, alors ce qui suit est sans aucun doute pour vous. Les deux sont utilisés pour stocker des éléments qui peuvent être des objets. Les tableaux ont une longueur fixe alors que ArrayList a une longueur variable.

Dans cet article, nous examinerons en détail ces deux structures de données et les comparerons également.

ArrayList vs. Array :un tableau de comparaison


Une ArrayList appartient à une classe appartenant au framework de collections de Java. Ici, les objets sont incapables d'être contenus dans des emplacements contigus.

Les ArrayLists occupent moins d'espace mémoire pour stocker des objets ou des éléments.

Itérer sur une ArrayList prend plus de temps et les performances sont plus lentes.
Base de différenciation Tableau Liste de tableaux
Taille de la structure de données Un tableau contient une structure de données de longueur fixe. La taille du tableau ne peut pas être modifiée une fois l'objet défini. Il est statique. La taille d'une ArrayList est dynamique. Les éléments/éléments de la structure de données peuvent être modifiés pour changer la taille de l'objet selon les besoins.
Redimensionner la propriété Comme la longueur d'un tableau est statique dans tout le programme, sa taille restera inchangée. La taille d'une ArrayList est capable de changer dynamiquement en fonction de la capacité et de la charge avec laquelle elle doit fonctionner.
Insertion et stockage des éléments L'opérateur d'affectation est utilisé pour le stockage des éléments. Le add() L'attribut est utilisé pour l'insertion d'éléments dans une ArrayList.
Nature des types de données Un tableau peut stocker des types de données primitifs ainsi que d'autres objets de type de données différent ou identique. Les ArrayLists ne peuvent stocker que des types d'objets. Ils ne peuvent pas contenir de primitives.
Génériques Les génériques ne sont pas compatibles avec les tableaux. Les ArrayLists permettent l'utilisation de Génériques.
Nature multidimensionnelle Les tableaux sont multidimensionnels. Les ArrayLists sont unidimensionnelles.
Stockage dans des emplacements de mémoire contigus Un tableau est un composant de programmation natif dans lequel les éléments sont contenus dans des emplacements de mémoire adjacents.
Détermination de la longueur La longueur variable est responsable de la détermination de la longueur d'un tableau. La longueur d'une ArrayList est définie par la Taille () méthode.
Espace mémoire utilisé Les tableaux utilisent plus de mémoire pour le stockage des objets ou éléments spécifiés.
Itération Itérer sur un tableau prend moins de temps que ce qu'il fait dans le cas des ArrayLists.

Tableau en JAVA

Les tableaux sont des collections de données fortement typées qui se composent de valeurs du même type. Ils ont une longueur fixe, qui ne peut pas être modifiée pendant l'exécution. Les éléments Array sont accessibles en utilisant leurs indices qui commencent à zéro.

Alors que la valeur des éléments de référence est maintenue à null , la valeur par défaut des éléments du tableau numérique est généralement définie sur zéro.

Exemple de tableau

Int[ ] intArray =new int [ ] {2};
intArray [0] = 1;
intArray [2] = 2;

Liste de tableaux

Une liste Array est différente d'un Array car elle n'est pas comme une collection fortement typée. C'est un tableau redimensionnable qui est présent dans le package java.util . Il est capable de stocker des types de données similaires ou différents. Sa taille et sa qualité globales peuvent diminuer ou augmenter dynamiquement pour capturer des valeurs de toutes tailles, et cela aussi à partir de n'importe quel type de données.

Une fonctionnalité ArrayList est l'une des structures de données les plus flexibles des collections C#. Il présente une liste de valeurs simple et facile à mettre en œuvre.

Lorsque vous utilisez ArrayList, vous constaterez qu'il implémente l'interface IList compatible avec Arrays. Vous pouvez l'utiliser pour modifier, ajouter, insérer, supprimer ou afficher les types de données que vous avez saisis.

En Java, vous pouvez accéder à un élément de la ArrayList en utilisant get() méthode.

students.get(3);  

Exemple d'une liste de tableaux

ArrayList Arrlst = new ArrayList ( );
Arrlst.Add (“Uma”);
Arrlst.Add (“1”);
Arrlst.Add (“null”);

Array vs. ArrayList :comparaison directe

La différence entre Array et ArrayList est décrit dans la section suivante en utilisant 8 points de comparaison - taille, performances, primitives, itérateur, sécurité de type, longueur, ajout d'éléments et multi-dimensions.

1. Taille

Les tableaux sont statiques dans leur longueur et leur taille. Il n'est pas possible de modifier leur longueur une fois que le développeur a créé l'objet tableau. Ils contiennent des éléments/éléments de type de données similaires qui ont été définis séquentiellement.

En revanche, une Array List est dynamique. Un objet ArrayList présentera une instance de capacité variable qui représente de manière appropriée la taille de ArrayList. La capacité de ArrayList est extensible et continue de croître automatiquement lorsque d'autres variables y sont ajoutées.

2. Performances

Les performances de ArrayList et Array dépend de l'opération effectuée sur eux. Par exemple, dans le resize() opération, le redimensionnement automatique de ArrayList diminue les performances de l'opération. Cela se produit car il utilise un tableau temporaire pour copier des éléments vers le nouveau tableau à partir de l'ancien.

Lorsque vous utilisez une liste Array, elle est sauvegardée en interne par un Array dans le processus d'appel de la méthode implémentée native comme indiqué ci-dessous :

System.arrayCopy(src,srcPos,dest,destPos,length)

ajouter() ou get() opération : La procédure de récupération d'un élément ou d'ajout d'un élément à partir des projets d'objets ArrayList ou Array a les mêmes niveaux de performances. Dans le cas d'un objet ArrayList, les opérations seraient effectuées en temps constant.

Dans l'ensemble, une ArrayList est plus lente qu'une Array.

3. Primitifs

Une autre différence entre ArrayList et array en Java est qu'une ArrayList ne peut pas contenir de types de données primitifs tels que int, float, double, etc. Elle ne contient que des objets.

D'autre part, les tableaux sont conçus pour contenir à la fois des objets et des types de données primitifs.

4. Itération de valeurs

Vous pouvez parcourir les valeurs d'une ArrayList à l'aide d'un itérateur. Les itérateurs renvoyés par l'itérateur de liste d'une classe ArrayList sont rapides.

Par contre, les commandes ‘pour chaque boucle’ ou 'for loop' sont utilisés par les développeurs Java pour parcourir un tableau.

5. Sécurité de type

Les développeurs Java trouvent facile de garantir la fonctionnalité de sécurité de type du langage de programmation à l'aide de Generics. Ici, il est important de comprendre qu'un tableau comprend une structure de données similaire ou homogène étroitement typée.

Il peut contenir des primitives appartenant à des types de données spécifiques uniquement. Vous ne pouvez pas stocker différents types de données ici. Si vous l'essayez, l'ArrayStoreException l'erreur sera lancée.

Ce n'est pas vrai dans le cas des ArrayLists.

Par exemple :

String temp[] =  new String[3];  

Cela générera un tableau de chaînes de taille 3

temp[0] = new Integer(12); 

Cette commande lèvera ArrayStoreException . C'est parce que le code tente d'inclure un objet Integer dans String[ ].

6. Longueur :

La taille( ) permet aux utilisateurs de définir la longueur de ArrayList. D'autre part, les objets Array utilisent la length() variable pour récupérer la longueur du tableau spécifié.

Par exemple,

Cette commande utilise la variable de longueur de l'objet tableau

Integer arrayobject [ ] = new Integer[6];
arraylength= arrayobject.length;

Cette commande utilise la méthode de taille d'objet ArrayList

ArrayList  arraylistobject = new ArrayList();
arraylistobject.add(10); 
arraylistobject.size( ); 

7. Ajout d'éléments :

Les éléments peuvent être insérés dans l'objet ArrayList en utilisant add( ) méthode. Dans le cas d'un tableau, les éléments ne peuvent être insérés qu'à l'aide d'un opérateur d'affectation.

Par exemple,

Integer addarrayobject[ ] = new Integer[8];
addarrayobject[0]= new Integer(3);  

Cette commande ajoute un nouvel objet à l'objet tableau spécifié. C'est l'une des différences les plus importantes entre Array et ArrayList.

8. Multidimensionnel :

Un tableau peut être multidimensionnel. Mais une ArrayList doit toujours être unidimensionnelle.

Voici une instance d'un tableau multidimensionnel :

Integer addarrayobject[ ][ ] = new Integer[5][6];
addarrayobject [0][0]= new Integer(8)  

Similarités entre ArrayList et Array en Java

Ajouter et récupérer la méthode

Les niveaux de performance des deux sont les mêmes dans ce cas. Les deux opérations s'exécutent en temps constant.

Éléments en double

Array et ArrayList contiennent des éléments en double.

Valeurs nulles

Les deux objets peuvent contenir des valeurs nulles. Ils utilisent un index pour faire référence à leurs éléments.

Non ordonné

Array et ArrayList ne garantissent pas les éléments ordonnés.

Conclusion

J'espère que cela résoudra tous vos doutes concernant la différence entre Array et ArrayList. Et si vous avez un entretien d'embauche technique à venir, vous êtes maintenant bien préparé !


Balise Java