Qu'est-ce que Dynamic Array en Java?

Le tableau dynamique en Java est un type de tableau avec une énorme amélioration pour le redimensionnement automatique. La seule limitation des tableaux est qu'il s'agit d'une taille fixe.

Tableaux dans sont des structures de données homogènes implémentées en Java sous forme d'objets. Les tableaux stockent une ou plusieurs valeurs d'un type de données spécifique et fournissent un accès indexé pour les stocker. Un élément spécifique d'un tableau est accessible par son index. Dans cet article, nous aborderons Dynamic Array en Java dans l'ordre suivant:



Introduction à Dynamic Array en Java

Le tableau dynamique est un tel type de tableau avec une énorme amélioration pour le redimensionnement automatique. La seule limitation des tableaux est qu'il s'agit d'une taille fixe. Cela se traduit par le fait que vous ne pouvez spécifier que le nombre d'éléments que votre tableau peut contenir à l'avance. D'autre part, les tableaux dynamiques peuvent s'étendre à mesure que nous ajoutons plus d'éléments en temps réel. Par conséquent, le codeur n'a pas besoin de déterminer la taille du tableau à l'avance. Il a également quelques atouts supplémentaires:



  • Recherche rapide . Comme pour les tableaux, lors de la récupération de l'élément à un index donné, prend un temps O (1).



  • Taille variable . Nous pouvons insérer autant d'éléments que nous le souhaitons et un tableau dynamique se développera en conséquence pour les contenir.

  • Compatible avec le cache . Semblables aux tableaux, les tableaux dynamiques peuvent placer des éléments les uns à côté des autres en mémoire, permettant ainsi une utilisation efficace des caches.



Il y a quelques inconvénients à utiliser des tableaux dynamiques dans notre code. Bien que nous utilisions plus que tout des tableaux dynamiques dans la plupart des applications, il existe certains cas où ils ne deviennent pas le choix le plus préféré en raison de ses limites.

  • Ajouts lents dans le pire des cas . Normalement, lors de l'ajout d'un nouvel élément à la fin d'un tableau dynamique, il prend O (1) à une instance. Cependant, si le tableau dynamique n'a plus d'indices pour un nouvel élément, il devra se développer, ce qui prend O (n) à la fois.

  • Insertions et suppressions coûteuses. Semblable aux tableaux, les éléments sont stockés les uns à côté des autres. Ainsi, lors de l'ajout ou de la suppression d'un élément au centre d'un tableau, il faut pousser d'autres éléments, ce qui prend O (n) à la fois.

    round double to int java

Les diagrammes ci-dessous montrent comment les tableaux fonctionnent en temps réel et décrivent comment les éléments sont empilés. Il montre également comment les instructions changent pour un cas moyen et le pire cas des fonctions de tableau.

array - tableau dynamique en java - edureka

Taille vs capacité

Lorsque nous initialisons un tableau dynamique, l'implémentation du tableau dynamique crée un tableau de taille fixe compris. La taille initiale correspond à l'implémentation. Par exemple, faisons en sorte que notre tableau d'implémentation utilise 10 indices. Maintenant, nous ajoutons quatre éléments à notre tableau dynamique. Maintenant, notre tableau dynamique a une longueur de quatre. Cependant, notre tableau sous-jacent a une longueur de 10. Par conséquent, nous pourrions dire que la taille du tableau dynamique est de quatre et sa capacité de 10. Un tableau dynamique stocke un index de fin spécifique pour garder une trace du point de fin du tableau dynamique et du début point d'où commence la capacité supplémentaire.

Doubler les ajouts

Il peut y avoir des cas où nous essayons d'ajouter un élément à un tableau où la capacité est déjà pleine. Par conséquent, pour créer des tableaux dynamiques de salle, créez automatiquement un nouveau tableau plus grand et sous-jacent. Habituellement, il devient deux fois plus gros pour gérer de nouveaux ajouts, ce qu'il n'avait pas anticipé auparavant. Par conséquent, la copie de chaque élément ne prend pas de temps. Chaque fois que l'ajout d'un élément à notre tableau dynamique crée automatiquement un nouveau tableau sous-jacent à double taille, qui ne prend pas de temps.

Supprimer un élément

Lors de la suppression d'un élément d'un tableau, la méthode par défaut «remove ()» supprime un élément de la fin et stocke automatiquement zéro au dernier index. Il supprimera également des éléments à un index spécifique en appelant la méthode removeAt (i) où «I» est index. La méthode removeAt (i) décale tous les éléments de droite du côté gauche de l'index donné.

Redimensionner un tableau

Lorsque les tableaux n'ont pas de données sur le côté droit du tableau qui prennent de la mémoire inutile, la méthode srinkSize () libère de la mémoire supplémentaire. Lorsque tous les emplacements sont consommés et que des éléments supplémentaires sont ajoutés, le tableau de taille fixe sous-jacent doit augmenter sa taille. Le redimensionnement proprement dit est coûteux, car nous devons allouer un plus grand tableau et copier tous les éléments d'un tableau que vous avez envahi avant de pouvoir enfin ajouter un nouvel élément.

Voici un exemple de programme dans lequel la taille du tableau devient pleine et de nouveaux éléments sont copiés dans un nouveau tableau de taille double. L'élément qui est un élément de chaîne appelé «Mahavir» est un ajout au tableau déjà complet de taille 3.

import java.util.ArrayList import java.util.Arrays import java.util.Scanner classe publique AddingItemsDynamically {public static void main (String args []) {Scanner sc = new Scanner (System.in) System.out.println (' Entrez la taille du tableau :: ') int size = sc.nextInt () String myArray [] = new String [size] System.out.println (' Enter elements of the array (Strings) :: ') for (int i = 0 i

Production:

Avec cela, nous arrivons à la fin de l'article Dynamic Array in Java. J'espère que vous avez une idée de la façon de travailler avec des tableaux dynamiques.

Vérifiez par Edureka, une entreprise d'apprentissage en ligne de confiance avec un réseau de plus de 250 000 apprenants satisfaits répartis dans le monde entier. Le cours de formation et de certification Java J2EE et SOA d'Edureka est conçu pour les étudiants et les professionnels qui souhaitent devenir développeur Java. Le cours est conçu pour vous donner une longueur d'avance dans la programmation Java et vous former aux concepts Java de base et avancés ainsi qu'à divers frameworks Java tels que Hibernate et Spring.

Vous avez une question pour nous? Veuillez le mentionner dans la section commentaires de ce blog «Dynamic Array in Java» et nous vous répondrons dans les plus brefs délais.