Redimensione um array, mantendo os elementos atuais em Java
- Redimensionar um array em Java
-
Redimensione um array usando o método
arraycopy()
em Java -
Redimensione um array usando o método
copyOf()
em Java -
Redimensione um array usando um
for
Loop em Java
Este tutorial apresenta como você pode redimensionar um array enquanto mantém todos os seus elementos atuais em Java. Incluímos alguns programas de exemplo para você consultar ao executar um programa neste campo.
um array é definida como um contêiner usado para armazenar tipos semelhantes de elementos em Java. É um contêiner de tamanho fixo, o que significa que se um array tiver tamanho 10, ele só pode armazenar 10 elementos - esta é uma das limitações de um array.
Neste artigo, aprenderemos a redimensionar um array usando alguns métodos integrados, como as funções arraycopy()
e copyOf()
e alguns códigos personalizados.
Redimensionar um array em Java
A alternativa superior do array dinâmico é a classe ArrayList
da estrutura de coleção que pode armazenar qualquer número de elementos e crescer dinamicamente. A primeira coisa que podemos fazer é criar um ArrayList
e copiar todos os elementos do array nele. Por fim, temos um novo tamanho de array. Veja o exemplo abaixo:
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);
}
}
Resultado:
12 34 21 33 22 55
[12, 34, 21, 33, 22, 55]
[12, 34, 21, 33, 22, 55, 100]
Redimensione um array usando o método arraycopy()
em Java
Java fornece um método arraycopy()
que pertence à classe System
e pode ser usado para criar uma cópia de um array. Neste exemplo, estamos criando uma nova matriz de tamanho maior e, em seguida, copiando todos os elementos do array original usando o método arraycopy()
. Siga o exemplo de programa abaixo:
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 + " ");
}
}
}
Resultado:
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
Redimensione um array usando o método copyOf()
em Java
A classe Java Arrays
fornece um método copyOf()
, que pode ser usado para criar uma nova matriz de tamanho copiando todos os elementos originais do array. Esse processo leva dois argumentos: o primeiro é o array original e o segundo é o tamanho do novo array. Veja o exemplo abaixo:
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 + " ");
}
}
}
Resultado:
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
Redimensione um array usando um for
Loop em Java
Este método é direto e é uma abordagem mais antiga em que usamos um loop for
e atribuímos os elementos do array original ao array recém-criado em cada iteração. Nós apenas criamos um novo array com um tamanho maior e copiamos todos os elementos nele usando o loop. Veja o exemplo abaixo:
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 + " ");
}
}
}
Resultado:
12 34 21 33 22 55
12 34 21 33 22 55 0 0 0 0