Différence entre Array et ArrayList Différence entre

Anonim

Qu'est-ce que Array et ArrayList?

Array et ArrayList sont des structures de données indexées souvent utilisées dans les programmes Java. Conceptuellement parlant, ArrayList est soutenu en interne par des tableaux, cependant, comprendre la différence entre les deux est la clé pour devenir un grand développeur Java. C'est tout à fait l'étape de base, en particulier les débutants qui viennent de commencer le codage. Alors que les deux sont utilisés pour stocker des éléments dans Java, qui peuvent être des primitives ou des objets, ils ont leur juste part de différences en termes de fonctionnalité et de performance. La principale différence entre les deux est que Array est statique tandis que ArrayList est dynamique dans la nature. Cet article compare les deux sur différents aspects afin que vous puissiez choisir l'un sur l'autre.

Différence entre Array et Arraylist

  1. Redimensionnable

L'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. 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 de Array ne peut pas être modifiée ou modifiée une fois que l'objet Array a été créé. Il contient une collection séquentielle d'éléments du même type de données. Les tableaux en Java fonctionnent différemment qu'ils ne fonctionnent en C / C ++. ArrayList, d'autre part, peut se redimensionner et les tableaux peuvent se développer comme ils le souhaitaient. Comme il s'agit d'une structure de données dynamique, les éléments peuvent être ajoutés et supprimés de la liste.

  1. Generics

Vous ne pouvez pas créer de tableaux de classes Generic d'interfaces en Java, donc les tableaux et les génériques ne vont pas de pair, ce qui rend impossible la création de Generic Array pour la raison fondamentale que les tableaux sont covariants tandis que les génériques sont invariants. Alors que Array est une structure de données de longueur fixe, elle 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 de l'objet Array, il lance simplement "ArrayStoreException". ArrayList, d'autre part, prend en charge Generics pour assurer la sécurité du type.

  1. Primitives

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 des primitives ne sont pas considérés comme des objets en Java. Les tableaux, en revanche, peuvent contenir des primitives ainsi que des objets en Java, car c'est l'une des structures de données les plus efficaces en Java pour stocker des objets. C'est un type de données agrégé conçu pour contenir des objets qui peuvent être de même type ou de type différent.

  1. Longueur

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 Array.Alors que ArrayList utilise la méthode size () pour déterminer la taille de ArrayList, il est plutôt différent de déterminer la longueur du tableau. L'attribut de méthode size () détermine le nombre d'éléments dans une ArrayList, qui à son tour est la capacité de ArrayList.

Par exemple :

public class ArrayLengthTest {

public static void principal (String [] args) {

ArrayList arrList = new ArrayList ();

String [] items = {"Un", "Deux", "Trois"};

pour (String str: items) {

arrList. ajouter (str);

}

int size = articles. Taille();

Système. en dehors. println (taille);

}

}

  1. Implémentation

Array est un composant de programmation natif Java créé dynamiquement et qui utilise l'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 de framework de collection en Java qui utilise un ensemble de méthodes spécifiées pour accéder et modifier les éléments. 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 tout au long.

  1. Performances

Bien que les deux structures de données offrent des performances similaires à celles d'ArrayList, Arrays permet d'avoir un avantage sur l'autre, principalement en termes de temps processeur et d'utilisation de la mémoire. Disons, si vous connaissez la taille du tableau, vous êtes susceptible d'aller avec le ArrayList. Cependant, l'itération sur un tableau est un peu plus rapide que l'itération sur une ArrayList. Si le programme implique un grand nombre de primitives, un tableau fonctionnera significativement 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.

Vs de tableau. Arraylist

Array ArrayList
Array est une structure de données de longueur fixe dont la longueur ne peut pas être modifiée une fois l'objet tableau créé. ArrayList est de nature dynamique, ce qui signifie qu'il peut se redimensionner pour se développer au besoin.
La taille d'un tableau reste statique dans tout le programme. La taille d'une ArrayList peut augmenter de façon dynamique en fonction de la charge et de la capacité.
Il utilise l'opérateur d'affectation pour stocker les éléments. Il utilise l'attribut add () pour insérer des éléments.
Il peut contenir des primitives ainsi que des objets de même type ou de type différent. Les primitives ne sont pas autorisées dans ArrayList. Il ne peut contenir que des types d'objets.
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 une dimension unique.
C'est un composant de programmation natif où les éléments sont stockés dans des emplacements 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 ArrayList.
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.
L'itération sur un tableau est plus rapide que l'itération sur une ArrayList. L'itération sur une ArrayList est nettement plus lente en termes de performances.

Résumé

Alors que certains peuvent penser que l'implémentation de tableaux dans un programme peut obtenir des résultats plus rapidement qu'avec ArrayLists pour la simple raison que les tableaux sont une structure de données de bas niveau, les performances peuvent varier. re performant. 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é. Cependant, malgré les différences, ils partagent également certaines similitudes. Les deux sont des structures de données indexées en Java qui vous permettent de stocker des objets et ils permettent tous deux des valeurs nulles ainsi que des doublons. Eh bien, si vous connaissez la taille des objets à l'avance, vous devriez aller avec un tableau, et si vous n'êtes pas sûr de la taille, allez avec ArrayList.