Redimensione um array, mantendo os elementos atuais em Java

Mohammad Irfan 12 outubro 2023
  1. Redimensionar um array em Java
  2. Redimensione um array usando o método arraycopy() em Java
  3. Redimensione um array usando o método copyOf() em Java
  4. Redimensione um array usando um for Loop em Java
Redimensione um array, mantendo os elementos atuais 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

Artigo relacionado - Java Array