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:
- Primero, declaramos una array de tipos int con el especificador de acceso privado.
- Declare la variable de conteo.
- Cree un constructor que inicialice la array de la longitud dada.
- Aquí la magia viene con el método de inserción.
- 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.
- Luego creamos una nueva array cuyo tamaño es el doble del tamaño de la array anterior.
- 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(); } }
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