Un array es una colección de datos del mismo tipo, cuyo identificador es el mismo.
Si creamos un array llamado personas y guardamos en el nombres, en memoria sería así:
personas[0] = "Juan"
personas[1] = "María"
personas[2] = "Ana"
Hay que darnos cuenta que la primera posición de un array en java es 0, y la última posición de un array de N elementos sería N-1.
Pero, ¿Cómo se declara un array unidimensional?
En java tenemos dos formas de declarar arrays:
- tipoDato [] nombreArray; o también tipoDato nombreArray []; En este caso el tamaño del array es igual al número de elementos que contenga.
- Mediante instanciación: nombreArray = new tipoDato[tamañoArray]; o también tipoDato [] nombreArray = new tipoDato[tamañoArray]; En este otro caso, el tamaño del array es igual al entero no negativo indicado entre corchetes.
En caso de que no haya suficiente memoria para declarar el array, el programa lanza una excepción (las veremos más adelante) del tipo: java.lang.OutOfMemoryError.
¿Cómo inicializamos un array?
Acordemonos que por inicializar nos referimos a darle valores al declarar un objeto.
Para inicializar un array en java, lo hacemos de la siguiente manera:
tipoDato [] nombreArray = {valor1,valor2,valorN}
Ejemplos:
Crear un array de Strings con 2 valores:
String [] nombres = {"Juan","María"};
Crear un array booleano con 4 valores:
boolean [] bol = {true,false,false,true};
Y, ¿Cómo accedo a un array?
Para poder acceder a un array hay que hacerlo mediante el identificador seguido de un numero (a este número se le llama indice(Index)) entero no negativo entre corchetes([ ]).
Supongamos que tenemos un array llamado notas con los indices siguientes:
Para el indice 0 --> El valor es 5.4
Para el indice 1 --> El valor es 8.0
Para el indice 2 --> El valor es 0.0
Si queremos mostrar el valor de cada indice por pantalla, lo hacemos mediante:
System.out.println(notas[0]);
System.out.println(notas[1]);
System.out.println(notas[2]);
La salida sería
5.4
8.0
0.0
En este caso es muy sencillo mostrar cada valor, pero imaginemos que tenemos el mismo array pero con muchos más valores, en este caso, podemos usar un bucle for para recorrer cada indice del array y mostrarlos por pantalla, como en el siguiente ejemplo:
for(int i = 0; i <= notas.length; i++){
System.out.println(notas[i]);
}
Con notas.length obtenemos el número de elementos del array.
Hay otra forma más sencilla con un bucle especial llamado foreach, este bucle esta a partir de Java 5 y se usa especialmente para objetos de colección (Arrays, ArrayList, etc.)
for(tipoDato : nombreArray){
...
}
Ejemplo para recorrer el array anterior (notas) con un buble foreach:
for(float i : notas){
System.out.println(i);
}
Hay que tener en cuenta que si intentamos acceder a un array con un indice > array.length, el programa lanzará una excepción del tipo: ArrayIndexOfBoundsException.
Ejercicio para practicar:
1. Crea un programa, donde el usuario introduzca nombres de personas y se guarden en el array personas, después pregunte si desea introducir otro nombre o ver todos los nombes del array. Para este programa debera contener lo siguiente:
- Un método introducirNombre que introduzca el nombre en el array
- Un método mostrarNombres que muestre por pantalla los nombres contenidos en el array y en caso de que algún valor sea igual (==) a null, que no ocurra nada.
- Un método preguntar, que pedira si desea introducir un nombre [i] o mostrar los nombres [n] y evaluará si la opción elegida es i (puedes usar opcion.equalsIgnoreCase("")) llame al método introdcirNombre, en caso de que sea n, llame al método mostrarNombres y si ninguna opción es valida que el programa acabe (usa System.exit(0);)
- Un método main, que llamara al método preguntar
No hay comentarios:
Publicar un comentario