Cos'è Dynamic Array in Java?

L'array dinamico in Java è un tipo di array con un enorme miglioramento per il ridimensionamento automatico. L'unica limitazione degli array è che si tratta di una dimensione fissa.

Array in formato sono strutture dati omogenee implementate in Java come oggetti. Gli array memorizzano uno o più valori di un tipo di dati specifico e forniscono l'accesso indicizzato per archiviarlo. Si accede a un elemento specifico in un array tramite il suo indice. In questo articolo, discuteremo di Dynamic Array in Java nella seguente sequenza:

Introduzione a Dynamic Array in Java

L'array dinamico è un tipo di array con un enorme miglioramento per il ridimensionamento automatico. L'unico limite degli array è che si tratta di una dimensione fissa. Questo si traduce in un significato che puoi solo specificare il numero di elementi che il tuo array può contenere prima del tempo. D'altra parte, gli array dinamici possono espandersi man mano che aggiungiamo più elementi in tempo reale. Pertanto, il programmatore non ha bisogno di determinare la dimensione della matrice in anticipo. Ha anche qualche altro punto di forza:





  • Ricerca rapida . Come gli array, quando si recupera l'elemento in un dato indice, richiede tempo O (1).



  • Dimensioni variabili . Possiamo inserire tutti gli elementi che vogliamo e un array dinamico si espanderà di conseguenza per contenerli.

  • Adatto alla cache . Analogamente agli array, gli array dinamici possono mettere gli elementi uno accanto all'altro in memoria, rendendo così un utilizzo efficiente delle cache.



Ci sono alcuni svantaggi nell'utilizzo di array dinamici nel nostro codice. Sebbene utilizziamo array dinamici più di ogni altra cosa nella maggior parte delle applicazioni, in alcuni casi non diventano la scelta preferita a causa dei suoi limiti.

  • Aggiunge il caso peggiore lento . Normalmente, durante l'aggiunta di un nuovo elemento alla fine di un array dinamico, richiede O (1) in un'istanza. Tuttavia, se l'array dinamico non ha più indici per un nuovo elemento, sarà necessario espandersi, il che richiede O (n) alla volta.

  • Costosi inserimenti e cancellazioni. Analogamente agli array, gli elementi vengono memorizzati l'uno accanto all'altro. Quindi, durante l'aggiunta o la rimozione di un elemento al centro di un array, è necessario spingere altri elementi, che richiede O (n) alla volta.

I diagrammi seguenti mostrano come funzionano gli array in tempo reale e descrivono come gli elementi sono impilati. Mostra anche come cambiano le istruzioni per un caso medio e il caso peggiore delle funzioni di matrice.

array - array dinamico in java - edureka

Dimensioni e capacità

Quando inizializziamo un array dinamico, l'implementazione dell'array dinamico crea un array a dimensione fissa comprensibile. La dimensione iniziale corrisponde all'implementazione. Ad esempio, facciamo in modo che il nostro array di implementazione utilizzi 10 indici. Ora aggiungiamo quattro elementi al nostro array dinamico. Ora, il nostro array dinamico ha una lunghezza di quattro. Tuttavia, il nostro array sottostante ha una lunghezza di 10. Quindi, potremmo dire che la dimensione dell'array dinamico è quattro e la sua capacità è 10. Un array dinamico memorizza uno specifico Indice finale per tenere traccia del punto finale dell'array dinamico e l'inizio punto da cui inizia la capacità extra.

Il raddoppio aggiunge

Ci possono essere casi in cui proviamo ad aggiungere un elemento a un array in cui la capacità è già piena. Quindi, per creare array dinamici di stanze, creare automaticamente nuovi array più grandi e sottostanti. Di solito, diventa due volte più grande per gestire eventuali nuove aggiunte, che non aveva previsto in precedenza. Quindi, la copia di ogni articolo non richiede tempo. Ogni volta che si aggiunge un elemento al nostro array dinamico, viene creato automaticamente un nuovo array sottostante di doppia dimensione, che l'aggiunta non richiede tempo.

come fare per la potenza di in java

Eliminazione di un elemento

Durante l'eliminazione di un elemento da un array, il metodo predefinito 'remove ()' rimuove un elemento dalla fine e memorizza automaticamente zero nell'ultimo indice. Inoltre eliminerà gli elementi in un indice specifico chiamando il metodo removeAt (i) dove 'I' è indice. Il metodo removeAt (i) sposta tutti gli elementi di destra nella parte sinistra dall'indice specificato.

Ridimensionamento di un array

Quando gli array non hanno dati sul lato destro dell'array che occupano memoria non necessaria, il metodo srinkSize () libera memoria extra. Quando tutti gli slot vengono consumati e vengono aggiunti elementi aggiuntivi, la matrice a dimensione fissa sottostante deve aumentare la dimensione. Il ridimensionamento effettivo è costoso, poiché dobbiamo allocare un array più grande e copiare in avanti tutti gli elementi da un array che hai cresciuto troppo prima che possa finalmente aggiungere un nuovo elemento.

Di seguito è riportato un esempio di un programma in cui la dimensione della matrice diventa piena e i nuovi elementi vengono copiati in una nuova matrice di doppia dimensione. L'elemento che è un elemento stringa chiamato 'Mahavir' è un'aggiunta alla matrice già completa di dimensione 3.

import java.util.ArrayList import java.util.Arrays import java.util.Scanner public class AddingItemsDynamically {public static void main (String args []) {Scanner sc = new Scanner (System.in) System.out.println (' Immettere la dimensione dell'array :: ') int size = sc.nextInt () String myArray [] = new String [size] System.out.println (' Enter elements of the array (Strings) :: ') for (int io = 0 i

Produzione:

Con questo, arriviamo alla fine dell'articolo Dynamic Array in Java. Spero che tu abbia un'idea di come lavorare con gli array dinamici.

Controlla il da Edureka, una società di formazione online affidabile con una rete di oltre 250.000 studenti soddisfatti sparsi in tutto il mondo. Il corso di formazione e certificazione Java J2EE e SOA di Edureka è progettato per studenti e professionisti che desiderano diventare sviluppatori Java. Il corso è progettato per darti un vantaggio nella programmazione Java e formarti sia sui concetti di base che avanzati su Java insieme a vari framework Java come Hibernate e Spring.

Hai domande per noi? Si prega di menzionarlo nella sezione commenti di questo blog 'Dynamic Array in Java' e ti risponderemo il prima possibile.