Array et ArrayList sont des structures de données basées sur des index qui sont souvent utilisées dans les programmes Java. Sur le plan conceptuel, ArrayList est soutenu de manière interne par des tableaux. Cependant, comprendre la différence entre les deux est la clé pour devenir un excellent développeur Java. C'est une étape fondamentale pour commencer, en particulier pour les débutants qui viennent juste de commencer à coder. Bien que les deux soient utilisés pour stocker des éléments en Java, qu'il s'agisse de primitives ou d'objets, ils ont leur lot de différences en termes de fonctionnalités et de performances. La principale différence entre les deux est que Array est statique alors que ArrayList est de nature dynamique. Cet article compare les deux sur différents aspects afin que vous puissiez choisir l'un sur l'autre.
Une des différences majeures et notables entre les deux structures de données est que Array est de nature statique, ce qui signifie qu'il s'agit d'un type de données de longueur fixe, tandis que ArrayList est de nature dynamique, ce qui signifie qu'il s'agit d'une structure de données de longueur variable. En termes techniques, la longueur du tableau ne peut plus être modifiée ni modifiée une fois l’objet tableau créé. Il contient une collection séquentielle d'éléments du même type de données. Les tableaux en Java fonctionnent différemment de ceux en C / C ++. ArrayList, en revanche, peut se redimensionner lui-même et les tableaux peuvent s'agrandir selon leurs besoins. S'agissant d'une structure de données dynamique, les éléments peuvent être ajoutés et supprimés de la liste..
Vous ne pouvez pas créer de tableaux d'interfaces génériques en Java. Par conséquent, les tableaux et les génériques ne vont pas de pair, ce qui rend impossible la création d'un tableau générique pour la seule raison fondamentale pour laquelle les tableaux sont covariants alors que les génériques sont invariants. Alors que Array est une structure de données de longueur fixe, il contient des objets de la même classe ou des primitives du type de données spécifique. Ainsi, si vous essayez de stocker un type de données différent de celui spécifié lors de la création d'un objet Array, il génère simplement «ArrayStoreException». ArrayList, en revanche, prend en charge Generics pour garantir la sécurité du type.
Les types de données primitifs tels que int, double, long et char ne sont pas autorisés dans ArrayList. Il contient plutôt des objets et les primitives ne sont pas considérées comme des objets en Java. Les tableaux, en revanche, peuvent contenir des primitives ainsi que des objets en Java, car il s’agit de l’une des structures de données les plus efficaces en Java pour le stockage d’objets. C'est un type de données agrégé conçu pour contenir des objets qui peuvent être de type identique ou différent.
Pour obtenir la longueur du tableau, le code doit accéder à l'attribut length car il faut connaître la longueur pour effectuer des opérations sur le tableau. Tandis que ArrayList utilise la méthode size () pour déterminer la taille de ArrayList, il s’agit plutôt de déterminer la longueur du tableau. L'attribut de la méthode size () détermine le nombre d'éléments dans une ArrayList, qui est à son tour la capacité de la ArrayList.
Par exemple:
Classe publique ArrayLengthTest
public static void main (String [] args)
ArrayList arrList = new ArrayList ();
String [] items = “Un”, “Deux”, “Trois”;
pour (String str: items)
arrList.add (str);
int size = items.size ();
System.out.println (taille);
Array est un composant de programmation natif en Java, créé de manière dynamique et utilisant un opérateur d'affectation pour contenir des éléments, tandis que ArrayList utilise l'attribut add () pour insérer des éléments. ArrayList est une classe du framework de collection en Java qui utilise un ensemble de méthodes spécifiées pour accéder aux éléments et les modifier. La taille d'une ArrayList peut être augmentée ou réduite dynamiquement. Les éléments d'un tableau sont stockés dans un emplacement mémoire contigu et sa taille reste statique.
Bien que les deux structures de données offrent des performances similaires à celles d'un tableau ArrayList, l'une est légèrement plus avancée que l'autre en termes de temps processeur et d'utilisation de la mémoire. Disons que si vous connaissez la taille du tableau, vous utiliserez probablement ArrayList. Cependant, itérer sur un tableau est un peu plus rapide que sur une liste de tableaux. Si le programme implique un grand nombre de primitives, un tableau fonctionnera nettement mieux que ArrayList, en termes de temps et de mémoire. Les tableaux sont un langage de programmation de bas niveau qui peut être utilisé dans les implémentations de collection. Cependant, les performances peuvent varier en fonction de l'opération que vous effectuez..
Tableau | ArrayList |
Un tableau est une structure de données de longueur fixe dont la longueur ne peut pas être modifiée une fois que l'objet tableau est créé.. | ArrayList est de nature dynamique, ce qui signifie qu'il peut se redimensionner lui-même pour se développer si nécessaire. |
La taille d'un tableau reste statique tout au long du programme. | La taille d'une ArrayList peut croître de manière dynamique en fonction de la charge et de la capacité. |
Il utilise l'opérateur d'assignation pour stocker des éléments. | Il utilise l'attribut add () pour insérer des éléments. |
Il peut contenir des primitives ainsi que des objets de type de données identique ou différent.. | Les primitives ne sont pas autorisées dans ArrayList. Il ne peut contenir que des types d'objet. |
Les tableaux et les génériques ne vont pas de pair. | Les génériques sont autorisés dans ArrayList. |
Les tableaux peuvent être multidimensionnels. | ArrayList est unidimensionnel. |
C'est un composant de programmation natif où les éléments sont stockés dans des emplacements de mémoire contigus. | C'est une classe du framework de collections de Java où les objets ne sont jamais stockés dans des emplacements contigus. |
La variable de longueur est utilisée pour déterminer la longueur du tableau. | La méthode size () est utilisée pour déterminer la taille de la liste de tableaux. |
Prend moins de mémoire que ArrayList pour stocker les éléments ou objets spécifiés. | Prend plus de mémoire que le tableau pour stocker des objets. |
Itérer sur un tableau est plus rapide que sur une ArrayList. | Itérer sur une ArrayList est nettement plus lent en termes de performances. |
Certains peuvent penser que l'implémentation de tableaux dans un programme peut produire des résultats plus rapidement que faire la même chose avec ArrayLists pour la simple raison que les tableaux sont une structure de données de bas niveau, les performances peuvent varier en fonction de l'opération que vous effectuez. Eh bien, la longueur d'un tableau est fixe, alors que la taille de ArrayList peut être augmentée ou réduite dynamiquement, donc ArrayList a un petit avantage sur le tableau en termes de fonctionnalités. Cependant, malgré les différences, ils partagent également certaines similitudes. Les deux sont des structures de données basées sur des index Java qui vous permettent de stocker des objets et autorisent les valeurs NULL ainsi que les doublons. Eh bien, si vous connaissez la taille des objets à l’avance, vous devriez utiliser un tableau et si vous n’êtes pas sûr de la taille, optez pour ArrayList..