Ridimensiona un array mantenendo gli elementi correnti in Java

Mohammad Irfan 12 ottobre 2023
  1. Ridimensiona un array in Java
  2. Ridimensiona un array usando il metodo arraycopy() in Java
  3. Ridimensiona un array usando il metodo copyOf() in Java
  4. Ridimensionare un array utilizzando un cicli for in Java
Ridimensiona un array mantenendo gli elementi correnti in Java

Questo tutorial introduce come ridimensionare un array mantenendo tutti i suoi elementi correnti in Java. Abbiamo incluso alcuni programmi di esempio a cui fare riferimento durante l’esecuzione di un programma in questo campo.

Un array è definito come un contenitore utilizzato per memorizzare tipi simili di elementi in Java. È un contenitore di dimensioni fisse, il che significa che se un array ha una dimensione di 10, può memorizzare solo 10 elementi: questo è uno dei limiti di un array.

In questo articolo impareremo a ridimensionare un array utilizzando alcuni metodi incorporati come le funzioni arraycopy() e copyOf() e alcuni codici personalizzati.

Ridimensiona un array in Java

L’alternativa più in alto dell’array dinamico è la classe ArrayList del framework di raccolta che può memorizzare un numero qualsiasi di elementi e cresce dinamicamente. La prima cosa che possiamo fare è creare un ArrayList e copiarvi tutti gli elementi dell’array. Finalmente, abbiamo una nuova dimensione dell’array. Vedi l’esempio qui sotto:

import java.util.ArrayList;
import java.util.List;
public class SimpleTesting {
  public static void main(String[] args) {
    int arr[] = new int[] {12, 34, 21, 33, 22, 55};
    for (int a : arr) {
      System.out.print(a + " ");
    }
    List<Integer> list = new ArrayList<>();
    for (int a : arr) {
      list.add(a);
    }
    System.out.println("\n" + list);
    list.add(100);
    System.out.println(list);
  }
}

Produzione:

12 34 21 33 22 55 
[12, 34, 21, 33, 22, 55]
[12, 34, 21, 33, 22, 55, 100]

Ridimensiona un array usando il metodo arraycopy() in Java

Java fornisce un metodo arraycopy() che appartiene alla classe System e può essere utilizzato per creare una copia di un array. In questo esempio, stiamo creando un nuovo array di dimensioni maggiori e quindi copiando tutti gli elementi dell’array originale utilizzando il metodo arraycopy(). Segui il programma di esempio qui sotto:

public class SimpleTesting {
  public static void main(String[] args) {
    int arr[] = new int[] {12, 34, 21, 33, 22, 55};
    for (int a : arr) {
      System.out.print(a + " ");
    }
    int arr2[] = new int[10];
    System.arraycopy(arr, 0, arr2, 0, arr.length);
    System.out.println();
    for (int a : arr2) {
      System.out.print(a + " ");
    }
    System.out.println();
    arr2[6] = 100;
    for (int a : arr2) {
      System.out.print(a + " ");
    }
  }
}

Produzione:

12 34 21 33 22 55
12 34 21 33 22 55 0 0 0 0
12 34 21 33 22 55 100 0 0 0

Ridimensiona un array usando il metodo copyOf() in Java

La classe Java Arrays fornisce un metodo copyOf(), che può essere utilizzato per creare un nuovo array di dimensioni copiando tutti gli elementi dell’array originale. Questo processo richiede due argomenti: il primo è l’array originale e il secondo è la dimensione del nuovo array. Vedi l’esempio qui sotto:

import java.util.Arrays;
public class SimpleTesting {
  public static void main(String[] args) {
    int arr[] = new int[] {12, 34, 21, 33, 22, 55};
    for (int a : arr) {
      System.out.print(a + " ");
    }
    int arr2[] = Arrays.copyOf(arr, 10);
    System.out.println();
    for (int a : arr2) {
      System.out.print(a + " ");
    }
    System.out.println();
    arr2[6] = 100;
    for (int a : arr2) {
      System.out.print(a + " ");
    }
  }
}

Produzione:

12 34 21 33 22 55 
12 34 21 33 22 55 0 0 0 0 
12 34 21 33 22 55 100 0 0 0 

Ridimensionare un array utilizzando un cicli for in Java

Questo metodo è semplice ed è un approccio più vecchio in cui utilizziamo un cicli for e assegniamo elementi dell’array originale nell’array appena creato in ogni iterazione. Creiamo semplicemente un nuovo array con una dimensione maggiore e copiamo tutti gli elementi al suo interno usando il bucle. Vedi l’esempio qui sotto:

public class SimpleTesting {
  public static void main(String[] args) {
    int arr[] = new int[] {12, 34, 21, 33, 22, 55};
    for (int a : arr) {
      System.out.print(a + " ");
    }
    int arr2[] = new int[10];
    for (int i = 0; i < arr.length; i++) {
      arr2[i] = arr[i];
    }
    System.out.println();
    for (int a : arr2) {
      System.out.print(a + " ");
    }
  }
}

Produzione:

12 34 21 33 22 55 
12 34 21 33 22 55 0 0 0 0

Articolo correlato - Java Array