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
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é !