Al igual que otros lenguajes de programaci�n, Java permite juntar y manejar m�ltiples valores a trav�s de un objeto array (matriz). Tambi�n se pueden manejar datos compuestos de m�ltiples caracteres utilizando el objeto String (cadena).
�Arrays
Esta secci�n te ense�ar� todo lo que necesitas para crear y utilizar arrays en tus programas Java.
Como otras variables, antes de poder utilizar un array primero se debe declarar. De nuevo, al igual que otras variables, la declaraci�n de un array tiene dos componentes primarios: el tipo del array y su nombre. Un tipo de array incluye el tipo de dato de los elementos que va contener el array. Por ejemplo, el tipo de dato para un array que s�lo va a contener elementos enteros es un array de enteros. No puede existir un array de tipo de datos gen�rico en el que el tipo de sus elementos est� indefinido cuando se declara el array. Aqu� tienes la declaraci�n de un array de enteros.
int[] arrayDeEnteros;
La parte int[] de la declaraci�n indica que arrayDeEnteros es un array de enteros. La declaraci�n no asigna ninguna memoria para contener los elementos del array.
Si se intenta asignar un valor o acceder a cualquier elemento de arrayDeEnteros antes de haber asignado la memoria para �l, el compilador dar� un error como este y no compilar� el programa.
testing.java:64: Variable arraydeenteros may not have been initialized.
Para asignar memoria a los elementos de un array, primero se debe ejemplarizar el array. Se puede hacer esto utilizando el operador new de Java. (Realmente, los pasos que se deben seguir para crear un array son similares a los se deben seguir para crear un objeto de una clase: declaraci�n, ejemplarizaci�n e inicializaci�n.
La siguiente sentencia asigna la suficiente memoria para que arrayDeEnteros pueda contener diez enteros.
int[] arraydeenteros = new int[10]
En general, cuando se crea un array, se utiliza el operador new, m�s el tipo de dato de los elementos del array, m�s el n�mero de elementos deseados encerrado entre cochetes cuadrados ('[' y ']').
TipodeElemento[] NombredeArray = new TipodeElementos[tamanoArray]
Ahora que se ha asignado memoria para un array ya se pueden asignar valores a los elemetos y recuperar esos valores.
for (int j = 0; j < arrayDeEnteros.length; j ++) { arrayDeEnteros[j] = j; System.out.println("[j] = " + arrayDeEnteros[j]); }
Como se puede ver en el ejemplo anterior, para referirse a un elemento del array, se a�ade corchetes cuadrados al nombre del array. Entre los corchetes caudrados se indica (bien con una variable o con una expresi�n) el �ndice del elemento al que se quiere acceder. Observa que en Java, el �ndice del array empieza en 0 y termina en la longitud del array menos uno.
Hay otro elemento interesante en el peque�o ejemplo anterior. El bucle for itera sobre cada elemento de arrayDeEnteros asign�ndole valores e imprimiendo esos valores. Observa el uso de arrayDeEnteros.length para obtener el tama�o real del array. length es una propiedad proporcionada para todos los arrays de Java.
Los arrays pueden contener cualquier tipo de dato legal en Java incluyendo los tipos de referencia como son los objetos u otros array. Por ejemplo, el siguiente ejemplo declara un array que puede contener diez objetos String.
String[] arrayDeStrings = new String[10];
Los elementos en este array son del tipo referencia, esto es, cada elemento contiene una referencia a un objeto String. En este punto, se ha asignado suficiente memoria para contener las referencias a los Strings, pero no se ha asignado memoria para los propios strings. Si se intenta acceder a uno de los elementos de arraydeStrings obtendr� una excepci�n 'NullPointerException' porque el array est� vacio y no contiene ni cadenas ni objetos String. Se debe asignar memoria de forma separada para los objetos String.
for (int i = 0; i < arraydeStrings.length; i ++) { arraydeStrings[i] = new String("Hello " + i); }
�Strings
Una secuencia de datos del tipo car�cter se llama un string (cadena) y en el entorno Java est� implementada por la clase String (un miembro del paquete java.lang).
String[] args;
Este c�digo declara expl�citamente un array, llamado args, que contiene objetos del tipo String. Los corchetes vacios indican que la longitud del array no se conoce en el momento de la compilaci�n, porque el array se pasa en el momento de la ejecuci�n.
El segundo uso de String es el uso de cadenas literales (una cadena de caracteres entre comillas " y ").
"Hola mundo!"
El compilador asigna implicitamente espacio para un objeto String cuando encuentra una cadena literal.
Los objetos String son inmutables - es decir, no se pueden modificar una vez que han sido creados.
El paquete java.lang proporciona una clase diferente, StringBuffer, que se podr� utilizar para crear y manipular caracteres al vuelo.
�Concatenaci�n de Cadenas
Java permite concatenar cadenas facilmente utilizando el operador +. El siguiente fragmento de c�digo concatena tres cadenas para producir su salida.
"La entrada tiene " + contador + " caracteres."
Dos de las cadenas concatenadas son cadenas literales: "La entrada tiene " y " caracteres.". La tercera cadena - la del medio- es realmente un entero que primero se convierte a cadena y luego se concatena con las otras.