Está en la página 1de 17

Arreglos

Jos Galaviz

Qu es un arreglo?
Un arreglo unidimensional de tamao M, de tipo X, es una coleccin de M elementos de tipo X, individualmente accesibles a travs de un ndice de tipo entero y un identificador asociado a la coleccin.

Qu podemos deducir de la definicin?


Un arreglo tiene un tipo asociado. El tipo de TODOS los elementos almacenados en l. Tipo homogneo. Un arreglo tiene un tamao asociado. El nmero de elementos que se pueden almacenar en l. Tamao fijo.

Algo ms
No hay limitaciones en el tipo de dato almacenado, slo debe ser el mismo. No hay limitaciones en el tamao del arreglo, slo debe caber en la memoria de la mquina virtual. En Java S hay limitaciones en el ndice para acceder a los elementos. {0, 1, , M-1}

Para tener un arreglo funcional


Se debe pasar necesariamente por dos

momentos: 1. Declaracin del identificador. 2. Asignacin de memoria.

Declaracin
Declaracin de la variable (identificador) a travs del que sern accedidos los elementos (entradas) del arreglo y del tipo de dato almacenado. int[] arrenteros; Object[] arreglin;

Asignacin de memoria
Se solicita la cantidad de memoria necesaria para almacenar cada uno de los elementos del arreglo.

arrenteros = new int[125]; arreglin = new Object[10];

Ambos juntos
int[] arreglo = new int[200];

Con inicializacin
int[] otro = {0, 2, 4, 6, 8, 10};

Arreglos multidimensionales

Un arreglo de dimensin n (n > 1) de tipo X, es un arreglo unidimensional de Mn arreglos de dimensin n - 1 de tipo X.

Coloquialmente

En java
Un arreglo bidimensional es un arreglo de arreglos unidimensionales. Uno tridimensional es un arreglo de arreglos bidimensionales o sea, un arreglo de arreglos de arreglos...

Asignacin de la memoria
Una vez definido (despus de la asignacin de memoria), el tamao de un arreglo no se puede cambiar. Pero s se puede definir en tiempo de ejecucin. Y si es un arreglo multidimensional, se puede diferir la asignacin de cada

dimensin y solicitar tamaos adecuados

Ejemplo: Reservar nmero de renglones

int[][] matriz; matriz = new int[10][];

Ejemplo: Reservar cada rengln for (i = 0; i < 10; i++) { matriz[i] = new int[i+1]; } for (i = 0; i < 10; i++) { for (j = 0; j < i + 1; j++) { matriz[i][j] = j+1; } }

Y entonces... for (i = 0; i < 10; i++) { for (j = 0; j < i + 1; j++) { System.out.print(" " + matriz[i][j]); } System.out.println(); }

Produce...
1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2

3 3 3 3 3 3 3 3

4 4 4 4 4 4 4

5 5 5 5 5 5

6 6 6 6 6

7 7 8 7 8 9 7 8 9 10

Los arreglos en Java...


Se pueden hacer del tipo que sea: primitivo u objetos. Se puede diferir jerrquicamente su

asignacin de memoria en sus diferentes dimensiones hasta que sea indispensable. Se pueden usar variables para especificar su tamao.

...
Se pueden pasar como parmetro. Y entregar como resultado. La homogeneidad del tipo es formal, no actual.

También podría gustarte