Bachiller
Clase 5. Estructuras estáticas y dinámicas de datos
Entre las estructuras estáticas y dinámicas de datos existentes en Java,
tenemos los arreglos (arrays) y los vectores.
Array
Un arreglo o array es un grupo de variables del mismo tipo al que se hace
referencia por medio de un nombre común. Se puede crear arrays de cualquier
tipo, y pueden tener unadimensión igual a uno o mayor. Para acceder a un
elemento concreto de un array se utilizan sus índices. Los arrays permiten
agrupar información relacionada.
Arrays unidimensionales
Un array unidimensional es, esencialmente, una lista de variables del mismo
tipo. Para crearlo, se debe declarar una variable array del tipo deseado. La
forma general de declarar un array unidimensional es:
tiponombre_variable [ ] ;
Donde tipo declara el tipo básico del array, que determina el tipo de cada
elemento del mismo. Por lo tanto, el tipo básico determinara que tipo de datos
se almacenara en el array. Por ejemplo, la siguiente línea declara un array
días_del_mes de tipo int:
int dias_del_mes [];
Aunque esta declaración establece que días_del_mes es un array, todavía no
existe realmente ningúnarray. De hecho el valor de la variable días_del_mes
esta en null, es decir, que no tiene ningún valor. Para que exista el array
debemos reservar el espacio utilizado por este con el operador new de la
siguiente manera:
tipo nombre_variable [ ] = new tipo [ tamaño];
El tamaño nos va a indicar el número de elementos a almacenar en el array.
Luego de realizar el new y colocarle el tamaño, todoslos elementos se
inicializan en cero automáticamente (por ser de tipo int).
int dias_del_mes [] = new int [12];
Ing. Erick Andrade- 2011
Lenguajes de programación III
Para acceder a un elemento concreto del array, se debe especificar el número
del índice dentro de corchetes. Todos los índices de un array comienzan en
cero. Ejemplo, para asignar el valor 28 al segundo elemento dedías_del_mes:
dias_del_mes[1] =
28;
Esta línea imprimiría el valor correspondiente al índice 3:
System.out.println(dias_del_mes[3]);
El siguiente programa resume las ideas anteriores, creando un array con el
número de días de cada mes.
class Array
{
public static void main(String args[])
{
int dias_del_mes[] = new int[12];
dias_del_mes[0] = 31;
dias_del_mes[1] = 28;dias_del_mes[2] = 31;
dias_del_mes[3] = 30;
dias_del_mes[4] = 31;
dias_del_mes[5] = 30;
dias_del_mes[6] = 31;
dias_del_mes[7] = 31;
dias_del_mes[8] = 30;
dias_del_mes[9] = 31;
dias_del_mes[10] = 30;
dias_del_mes[11] = 31;
System.out.println("Abril tiene " + dias_del_mes[3] + "
días.");
}
}
El programa imprimirá:
Abril tiene 30 días.
¿Cómo mejoraríamos el programa anterior?
Los arraystambién se pueden inicializar cuando se declaran, el proceso es el
mismo que cuando se inicializan tipos primitivos. La manera de hacerlo es
colocando lo valores dentro de llaves separados por comas. El número total de
elementos decidirá el tamaño del array. El siguiente programa es una mejora
del programa anterior:
Ing. Erick Andrade- 2011
Lenguajes de programación III
ClassArrayInicializado
{
public static void main(String args[])
{
int month_days[] = {31,28,31,30,31,30,31,31,30,31,30,31};
System.out.println("Abril tiene " + month_days[3] + " dias.");
}
}
La salida del programa, será la misma que la del programa anterior.
Arrays multidimensionales
En Java, los arrays multidimensionales son realmente arrays de arrays. Para
declarar una variable de este estilo, hayque especificar cada índice adicional
utilizando otra pareja de corchetes. Por ejemplo:
int dosDimensiones[][] = new int[4][5];
El índice de la derecha determina el número de columnas y el índice de la
izquierda determina el número de filas de lo que ahora se podría llamar matriz.
Para inicializar una matriz de 3x3 se haría lo siguiente:
int month_days[][] = {
{ 1 , 2, 3},
{ 4 , 5,...
Regístrate para leer el documento completo.