Cambiar el tamaño de un array manteniendo los elementos actuales en Java

Mohammad Irfan 12 octubre 2023
  1. Cambiar el tamaño de un array en Java
  2. Cambiar el tamaño de un array utilizando el método arraycopy() en Java
  3. Cambiar el tamaño de un array utilizando el método copyOf() en Java
  4. Cambiar el tamaño de un array utilizando un bucle for en Java
Cambiar el tamaño de un array manteniendo los elementos actuales en Java

Este tutorial presenta cómo cambiar el tamaño de un array manteniendo todos sus elementos actuales en Java. Incluimos algunos programas de ejemplo para que pueda consultarlos cuando ejecute un programa en este campo.

un array se define como un contenedor que se utiliza para almacenar tipos similares de elementos en Java. Es un contenedor de tamaño fijo, lo que significa que si un array tiene un tamaño de 10, solo puede almacenar 10 elementos; esta es una de las limitaciones de un array.

En este artículo, aprenderemos a cambiar el tamaño de un array utilizando algunos métodos integrados como las funciones arraycopy() y copyOf() y algunos códigos personalizados.

Cambiar el tamaño de un array en Java

La alternativa superior del array dinámica es la clase de marco de colección ArrayList que puede almacenar cualquier número de elementos y crece dinámicamente. Lo primero que podemos hacer es crear una ArrayList y copiar todos los elementos del array en ella. Por fin, tenemos un nuevo tamaño de array. Vea el ejemplo a continuación:

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);
  }
}

Producción :

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

Cambiar el tamaño de un array utilizando el método arraycopy() en Java

Java proporciona un método arraycopy() que pertenece a la clase System y se puede utilizar para crear una copia de un array. En este ejemplo, estamos creando una nueva matriz de mayor tamaño y luego copiando todos los elementos originales del array en ella usando el método arraycopy(). Siga el programa de ejemplo a continuación:

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 + " ");
    }
  }
}

Producción :

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

Cambiar el tamaño de un array utilizando el método copyOf() en Java

La clase Java Arrays proporciona un método copyOf(), que se puede utilizar para crear un array de nuevo tamaño copiando todos los elementos originales del array. Este proceso toma dos argumentos: el primero es el array original y el segundo es el tamaño de la nueva matriz. Vea el ejemplo a continuación:

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 + " ");
    }
  }
}

Producción :

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 

Cambiar el tamaño de un array utilizando un bucle for en Java

Este método es sencillo y es un enfoque más antiguo en el que usamos un bucle for y asignamos elementos de array originales en el array recién creada en cada iteración. Simplemente creamos una nueva matriz con un tamaño más grande y copiamos todos los elementos en ella usando el bucle. Vea el ejemplo a continuación:

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 + " ");
    }
  }
}

Producción :

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

Artículo relacionado - Java Array