Crear una array dinámica en Java

Las arrays son estructuras de datos lineales, lo que significa que se insertarán tipos similares de elementos conocidos de forma continua. Ahora, como sabemos, hay un problema con las arrays cuyo tamaño debe especificarse en el momento de la declaración o tomarse del usuario en Java, lo que nos restringe. Por lo tanto, surgen arrays dinámicas en Java en las que se pueden agregar entradas a medida que la array aumenta su tamaño a medida que está llena. El tamaño de la nueva array aumenta al doble del tamaño de la array original. Ahora todos los elementos se retienen en una nueva array que tiene un tamaño de dominio de array especificado y el resto se agrega después de ellos en la array recién formada. Esta array sigue creciendo dinámicamente. 

Procedimiento: 

  1. Primero, declaramos una array de tipos int con el especificador de acceso privado.
  2. Declare la variable de conteo.
  3. Cree un constructor que inicialice la array de la longitud dada.
  4. Aquí la magia viene con el método de inserción.
  5. Primero, antes de insertar el valor, verifica la longitud de la array y la variable de conteo, si ambas tienen el mismo tamaño, se dice que la array está llena.
  6. Luego creamos una nueva array cuyo tamaño es el doble del tamaño de la array anterior.
  7. Simplemente inicialicé la nueva array con la array anterior y la reinicié de nuevo en la array anterior.

Implementación: creación de una clase Array que declara int arr e int count. Acabamos de crear una array cada vez que la array esté llena, la array cambiará de tamaño. 

Ejemplo

Java

// Java Program to Create a Dynamic Array
 
// Class 1
// Helper class
class Array {
 
    // Member variables of this class
    // Private access modifier
    private int arr[];
    private int count;
 
    // Note they can only be called through function
 
    // Method 1
    // Inside helper class
    // to compute length of an array
    public Array(int length) { arr = new int[length]; }
 
    // Method 2
    // Inside helper class
    // To print array
    public void printArray()
    {
 
        // Iterating over array using for loop
        for (int i = 0; i < count; i++) {
 
            // Print the elements of an array
            System.out.print(arr[i] + " ");
        }
    }
 
    // Method 3
    // Inside Helper class
    public void insert(int element)
    {
 
        if (arr.length == count) {
 
            // Creating a new array double the size
            // of array declared above
            int newArr[] = new int[2 * count];
 
            // Iterating over new array using for loop
            for (int i = 0; i < count; i++) {
                newArr[i] = arr[i];
            }
 
            // Assigning new array to original array
            // created above
            arr = newArr;
        }
 
        arr[count++] = element;
    }
}
 
// Class 2
// Main class
public class GFG {
 
    // Main driver method
    public static void main(String[] args)
    {
 
        // Creating object of Array(user-defined) class
        Array numbers = new Array(3);
 
        // Adding elements more than size specified above
        // to the array to illustrate dynamic nature
        // using the insert() method
 
        // Custom input elements
        numbers.insert(10);
        numbers.insert(30);
        numbers.insert(40);
        numbers.insert(50);
 
        // Calling the printArray() method to print
        // new array been dynamically created
        numbers.printArray();
    }
}
Producción

10 30 40 50 

Publicación traducida automáticamente

Artículo escrito por saivinaygondrala y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *