Ridimensiona un array mantenendo gli elementi correnti in Java
- Ridimensiona un array in Java
-
Ridimensiona un array usando il metodo
arraycopy()
in Java -
Ridimensiona un array usando il metodo
copyOf()
in Java -
Ridimensionare un array utilizzando un cicli
for
in Java
![Ridimensiona un array mantenendo gli elementi correnti in Java](/img/Java/feature-image---resize-an-array-in-java.webp)
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