Qu’est-ce qu’un tableau et une liste de tableaux ?
Les tableaux et les listes de tableaux sont des structures de données basées sur l’index qui sont souvent utilisées dans les programmes Java. D’un point de vue conceptuel, ArrayList est soutenu en interne par des tableaux, mais comprendre la différence entre les deux est la clé pour devenir un bon développeur Java. Il s’agit d’une étape fondamentale, en particulier pour les débutants qui commencent à coder. Bien qu’ils soient tous deux utilisés pour stocker des éléments en Java, qui peuvent être des primitives ou des objets, ils ont leur part de différences en termes de fonctionnalité et de performance. La principale différence entre les deux est que Array est statique alors que ArrayList est dynamique par nature. Cet article compare les deux sur différents aspects afin que vous puissiez choisir l’un plutôt que l’autre.
Différence entre Array et Arraylist
- Résistible
L’une des différences majeures et notables entre les deux structures de données est que le tableau est statique par nature, ce qui signifie qu’il s’agit d’un type de données de longueur fixe, tandis que la liste de tableaux est dynamique par nature, ce qui signifie qu’il s’agit d’une structure de données de longueur variable. En termes techniques, la longueur d’un tableau ne peut être changée ou modifiée une fois que l’objet tableau est créé. Il contient une collection séquentielle d’éléments du même type de données. En Java, les tableaux fonctionnent différemment qu’en C/C++. ArrayList, en revanche, peut se redimensionner et les tableaux peuvent s’agrandir en fonction des besoins. Comme il s’agit d’une structure de données dynamique, les éléments peuvent être ajoutés et supprimés de la liste.
Il n’est pas possible de créer des tableaux de classes génériques ou d’interfaces en Java. Les tableaux et les génériques ne vont donc pas de pair et il est impossible de créer des tableaux génériques pour la simple raison que les tableaux sont covariants alors que les génériques sont invariants. Alors que le tableau est une structure de données de longueur fixe, il contient des objets de la même classe ou des primitives d’un type de données spécifique. Par conséquent, 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, ce dernier lève simplement une « exception ArrayStore ». En revanche, ArrayList prend en charge la fonction Generics pour garantir la sécurité des types.
Les types de données primitifs tels que int, double, long et char ne sont pas autorisés dans ArrayList. Ils contiennent 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 aussi bien que des objets en Java, car il s’agit de l’une des structures de données les plus efficaces pour le stockage d’objets. Il s’agit d’un type de données agrégé conçu pour contenir des objets 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. Bien que ArrayList utilise la méthode size () pour déterminer la taille de la liste de tableaux, cette méthode est assez différente de la détermination de la longueur du tableau. L’attribut de la méthode size () détermine le nombre d’éléments d’une liste de tableaux, ce qui correspond à la capacité de la liste.
Voici un exemple :
public class ArrayLengthTest {
public static void main(String args) {
ArrayListarrList = new ArrayList() ;
String items = { « One », « Two », « Three » } ;
for(String str : items){
arrList.add(str) ;
}
int size = items.size() ;
System.out.println(size) ;
}
}
Array est un composant de programmation natif en Java qui est créé dynamiquement et qui utilise l’opérateur d’affectation pour conserver les éléments, tandis que ArrayList utilise l’attribut add( ) pour insérer des éléments. ArrayList est une classe du cadre de collection de Java qui utilise un ensemble de méthodes spécifiques pour accéder aux éléments et les modifier. La taille d’une liste de tableaux peut être augmentée ou diminuée dynamiquement. Les éléments d’un tableau sont stockés dans des emplacements de mémoire contigus et leur taille reste statique.
Bien que les deux structures de données offrent des performances similaires, étant donné qu’une liste de tableaux est soutenue par des tableaux, l’une d’entre elles a un léger avantage sur l’autre, principalement en termes de temps d’exécution et d’utilisation de la mémoire. Par exemple, si vous connaissez la taille du tableau, vous opterez probablement pour la liste de tableaux. Toutefois, l’itération sur un tableau est un peu plus rapide que l’itération sur une liste de tableaux. Si le programme comporte un grand nombre de primitives, un tableau sera nettement plus performant qu’une liste de tableaux, 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 collections. Toutefois, les performances peuvent varier en fonction de l’opération effectuée.
Array Vs. Arraylist
Résumé
Bien que certains puissent penser que l’implémentation de tableaux dans un programme permet d’obtenir des résultats plus rapidement qu’avec des listes de tableaux, 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. La longueur d’un tableau est fixe, alors que la taille d’une liste de tableaux peut être augmentée ou diminuée de manière dynamique, de sorte que la liste de tableaux a un léger avantage sur le tableau en termes de fonctionnalité. Cependant, malgré leurs différences, ces deux structures présentent également des similitudes. Les deux sont des structures de données basées sur un index en Java qui vous permettent de stocker des objets et ils autorisent tous deux les valeurs nulles ainsi que les doublons. Si vous connaissez la taille des objets à l’avance, vous devriez opter pour un tableau, et si vous n’êtes pas sûr de la taille, vous devriez opter pour une liste de tableaux (ArrayList).