Las matrices en el código de Java

los Lista de arreglo clase que se utiliza en muchos programas de aplicaciones de Android es sólo la punta del iceberg de las colecciones de Java. La biblioteca de Java contiene muchas clases de colecciones, cada una con sus propias ventajas. La tabla contiene una lista abreviada.

Algunas clases de colección
Nombre de claseCaracterística
Lista de arregloUna matriz de tamaño variable.
Lista enlazadaUna lista de valores, cada uno con un campo que apunta a la NexTone en la lista.
PilaUna estructura (que crece de abajo hacia arriba) que es el acceso optimizedfor al valor superior. Usted puede agregar fácilmente un valor a thetop o eliminarlo de la parte superior.
ColaUna estructura (que crece en un extremo) que se optimiza valores foradding a un extremo (la parte trasera) y la eliminación de los valores de theother extremo (la parte delantera).
PriorityQueueUna estructura, como una cola, que permite a ciertos valores (de mayor prioridad) se mueven hacia el frente.
HashSetUna colección que no contiene valores duplicados.
HashMapUna colección de pares de clave / valor.

Cada clase de colección tiene su propio conjunto de métodos (además de los métodos que hereda de AbstractCollection, el antepasado de todas clases de colección).

Una matriz es un tipo particular de colección que está optimizado para la indexación. Es decir, usted puede encontrar fácilmente y eficientemente el valor 100a almacenado en una matriz, el valor 1000a almacenada en una matriz, o el valor de 1.000.000 almacenada en una matriz.

La matriz es una característica venerable, probada y verdadera de muchos lenguajes de programación, incluyendo idiomas más recientes, como Java y lenguajes más antiguos, como FORTRAN. De hecho, la historia de la matriz se remonta tan lejos que la mayoría de los idiomas (incluyendo Java) tienen notación especial para hacer frente a las matrices. La lista muestra la notación de matrices en un programa Java simple.

clase de paquetes com.allmycode.collections pública SimpleCollectionsDemo {main (String [] args) {static void públicosString [] myArray = new String [4] -myArray [0] = "Hola" -myArray [1] = "," -myArray [2] = "lectores" -myArray [3] = "!" -for (int i = 0- i lt; 4- i ++) { System.out.print (myArray [i]) -}System.out.println () - para (cadena Cadena: myArray) {System.out.print (cadena) -}}}

La figura muestra la salida de un plazo de un código en el anuncio. Tanto la ordinaria para bucle y la mejorada para bucle de mostrar la misma salida.

Ejecutar el código en el anuncio.
Ejecutar el código en el anuncio.

En el establecimiento, lo ordinario para bucle utiliza los índices, con cada índice marcado por corchetes. Como sucede con todas las colecciones de Java, el índice del valor inicial es 0, no 1. Observe también el número 4 en la declaración de la matriz - indica que "se puede almacenar 4 valores de la matriz."

El número 4 ¿no indica que "se puede asignar un valor a myArray [4]."De hecho, si se agrega una declaración como myArray [4] = "¡Oops!" al código en la lista, aparece un mensaje de error desagradable (ArrayIndexOutOfBoundsException) Cuando se ejecuta el programa.

La declaración String [] myArray = new String [4] crea una matriz vacía y hace que el myArray la variable se refiere a la matriz vacía. La matriz puede almacenar potencialmente hasta cuatro valores. Pero, en un principio, esa variable se refiere a una matriz que contiene los valores. No es hasta Java ejecuta la sentencia primera asignación (myArray [0] = "Hola") Que la matriz contiene ningún valor.

Usted puede encontrar fácilmente y eficientemente el valor 100a almacenado en una matriz o el valor de 1.000.000 almacenada en una matriz. No está mal para un día de trabajo. Así que, ¿cuál es el inconveniente de la utilización de una matriz? La mayor desventaja de un array es que cada variedad tiene un límite fijo sobre el número de valores que puede contener. Cuando se crea la matriz en el perfil, Java se reserva espacio para hasta cuatro Cuerda los valores.

Si, más adelante en el programa, usted decide que usted desea almacenar un quinto elemento de la matriz, usted necesita algunos, código ineficiente torpe para hacerse una matriz más grande. También puede sobrestimar el tamaño que usted necesita para una matriz, como se muestra en este ejemplo:


String [] myArray = new String [20000000] -

Cuando se sobreestima, es probable que pierda una gran cantidad de espacio de memoria.

Otra característica desagradable de una matriz es la dificultad que puede tener en la inserción de nuevos valores. Imagine tener una caja de madera para cada año en su colección de El emperador Constantino Comics. La serie se remonta al año 307 dC, cuando Constantino se convirtió en jefe del Imperio Romano.

Usted tiene sólo 1.700 cajas, ya que se está perdiendo cerca de seis años (en su mayoría de los años 1150 a 1155). Las cajas no están numeradas, sino que están apilados uno junto a otro en una línea que es de 200 metros de largo. (La línea es tan larga como el piso 55 de un rascacielos es alto.)

En una venta de garaje en Estambul, se encuentra una rara edición de El emperador Constantino Comics a partir de marzo de 1152. Después de que disfruta sobre su primer cómic desde el año 1152, te das cuenta de que tienes que insertar un nuevo cuadro en la pila entre los años 1151 y 1153, que consiste en mover el cuadro de año 2013 unos diez centímetros hacia la izquierda, y a continuación, mover el cuadro de 2012 en lugar del cuadro de 2013, y luego mover el cuadro de 2011 en lugar del cuadro de 2012. Etcétera.

Vida para el ávido Rey Constantine Comics colector está a punto de llegar a cansar! Inserción de un valor en el medio de una variedad grande es igualmente molesto.




» » » » Las matrices en el código de Java