Anda di halaman 1dari 12

Qu es un array?

Un array es una estructura de datos que nos permite almacenar una ristra de datos de un
mismo tipo. El tamao de los arrays se declara en un primer momento y no puede cambiar en
tiempo de ejecucin como puede producirse en otros lenguajes.

La declaracin de un array en Java y su inicializacin se realiza de la siguiente manera:

1. tipo_dato nombre_array[];
2. nombre_array = new tipo_dato[tamao];

Por ejemplo, podramos declarar un array de caracteres e inicializarlo de la siguiente manera:

1. char arrayCaracteres[];
2. arrayCaracteres = new char[10];

Los arrays se numeran desde el elemento cero, que sera el primer elemento, hasta el
tamao-1 que sera el ltimo elemento. Es decir, si tenemos un array de diez elementos, el
primer elemento sera el cero y el ltimo elemento sera el nueve.

Para acceder a un elemento especifico utilizaremos los corchetes de la siguiente forma.


Entendemos por acceso, tanto el intentar leer el elemento, como asignarle un valor.

1. arrayCaracteres[numero_elemento];

Por ejemplo, para acceder al tercer elemento lo haramos de la siguiente forma:

1. // Lectura de su valor.
2. char x = arrayCaracteres[2];
3.
4. // Asignacin de un valor. Como se puede comprobar se pone el
nmero dos, que coincide con el tercer elemento. Ya que como
dijimos anteriormente el primer elemento es el cero.
5. arrayCaracteres[2] = 'b';
El objeto array, aunque podramos decir que no existe como tal, posee una variable, la cual
podremos utilizar para facilitar su manejo.

Tamao del array: .length

Esta variable nos devuelve el nmero de elementos que posee el array. Hay que tener en
cuenta que es una variable de solo lectura, es por ello que no podremos realizar una
asignacin a dicha variable.

Por ejemplo esto nos servira a la hora de mostrar el contenido de los elementos de un array:

1. char array[];
2. array = new char[10];
3.
4. for (int x=0;x<array.length;x++) {
5. System.out.println (array[x]);
6. }

Uno de los axiomas de la orientacin a objetos es la ocultacin, es decir, que no podemos


acceder a una variable declarada dentro de una clase a no ser que lo hagamos a traves de un
mtodo de la clase. Aqu estamos accediendo a una variable. Quizs sea por que no
consideran a los arrays como objetos?.

Matrices o Arrays de varios subindices

Podremos declarar arrays de varios subndices, pudiendo tener arrays de dos niveles, que
seran similares a las matrices, arrays de tres niveles, que seran como cubos y as
sucesivamente, si bien a partir del tercer nivel se pierde la perspectiva geomtrica.

Para declarar e inicializar un array de varios subndices lo haremos de la siguiente manera:

1. tipo_dato nombre_array[][];
2. nombre_array = new tipo_dato[tamao][tamao];

De esta forma podemos declarar una matriz de 2x2 de la siguiente forma:

1. int matriz[][];
2. matriz = new int[2][2];

El acceso se realiza de la misma forma que antes:

1. int x = matriz[1][1]; // Para leer el contenido de un elemento


2. matriz[1][1] = x; // Para asignar un valor.

Hay que tener en cuenta que para mostrar su contenido tendremos que utilizar dos bucles.
Para saber el nmero de columnas lo haremos igual que antes mediante la variable length,
pero para saber el numero de filas que contiene cada columna lo tendremos que realizar de la
siguiente manera:

1. matriz[numero_elemento].lenght;

Nuestra lectura de los elementos de una matriz quedara de la siguiente forma:

1. int matriz[][];
2. matriz = new int[4][4];
3. for (int x=0; x < matrix.length; x++) {
4. for (int y=0; y < matriz[x].length; y++) {
5. System.out.println (matriz[x][y]);
6. }
7. }

Incializacin de Arrays

Existe una forma de inicializar un array con el contenido, amoldndose su tamao al nmero
de elementos a los que le inicialicemos. Para inicializar un array utilizaremos las llaves de la
siguiente forma:

1. tipo_dato array[] = {elemento1,elemento2,...,elementoN};

As, por ejemplo, podramos inicializar un array o una matriz:

1. // Tenemos un array de 5 elementos.


2. char array[] = {'a','b','c','d','e'};
3.
4. // Tenemos un array de 4x4 elementos.
5. int array[][] = { {1,2,3,4}, {5,6,7,8}};

Los arrays
Clases y objetos

Decalarar y crear un array

Inicializar y usar el array

Arrays multidimensionales

El cdigo fuente

Un array es un medio de guardar un conjunto de objetos de la misma clase. Se accede a


cada elemento individual del array mediante un nmero entero denominado ndice. 0 es
el ndice del primer elemento y n-1 es el ndice del ltimo elemento, siendo n, la
dimensin del array. Los arrays son objetos en Java y como tales vamos a ver los pasos
que hemos de seguir para usarlos convenientemente

Declarar el array
Crear el array
Inicializar los elementos del array
Usar el array

Declarar y crear un array


Para declarar un array se escribe

tipo_de_dato[] nombre_del_array;

Para declarar un array de enteros escribimos


int[] numeros;

Para crear un array de 4 nmero enteros escribimos

numeros=new int[4];

La declaracin y la creacin del array se puede hacer en una misma lnea.

int[] numeros =new int[4];

Inicializar y usar los elementos del array


Para inicializar el array de 4 enteros escribimos

numeros[0]=2;
numeros[1]=-4;
numeros[2]=15;
numeros[3]=-25;

Se pueden inicializar en un bucle for como resultado de alguna operacin

for(int i=0; i<4; i++){


numeros[i]=i*i+4;
}

No necesitamos recordar el nmero de elementos del array, su miembro dato length nos
proporciona la dimensin del array. Escribimos de forma equivalente

for(int i=0; i<numeros.length; i++){


numeros[i]=i*i+4;
}

Los arrays se pueden declarar, crear e inicializar en una misma lnea, del siguiente modo

int[] numeros={2, -4, 15, -25};


String[] nombres={"Juan", "Jos",
"Miguel", "Antonio"};

Para imprimir a los elementos de array nombres se escribe

for(int i=0; i<nombres.length; i++){


System.out.println(nombres[i]);
}

Java verifica que el ndice no sea mayor o igual que la dimensin del array, lo que
facilita mucho el trabajo al programador.

Para crear un array de tres objetos de la clase Rectangulo se escribe

Declarar

Rectangulo[] rectangulos;

Crear el array

rectangulos=new Rectangulo[3];

Inicializar los elementos del array

rectangulos[0]=new Rectangulo(10, 20,


30, 40);
rectangulos[1]=new Rectangulo(30, 40);
rectangulos[2]=new Rectangulo(50, 80);

O bien, en una sola lnea

Rectangulo[] rectangulos={new
Rectangulo(10, 20, 30, 40),
new Rectangulo(30, 40), new
Rectangulo(50, 80)};

Usar el array
Para calcular y mostrar el rea de los rectngulos escribimos

for(int i=0; i<rectangulos.length; i++){

System.out.println(rectangulos[i].calcul
arArea());
}

Arrays multidimensionales
Una matriz bidimensional puede tener varias filas, y en cada fila no tiene por qu haber
el mismo nmero de elementos o columnas. Por ejemplo, podemos declarar e inicializar
la siguiente matriz bidimensional

double[][]
matriz={{1,2,3,4},{5,6},{7,8,9,10,11,12},{13}
};

La primer fila tiene cuatro elementos {1,2,3,4}


La segunda fila tiene dos elementos {5,6}
La tercera fila tiene seis elementos {7,8,9,10,11,12}
La cuarta fila tiene un elemento {13}

Para mostrar los elementos de este array bidimensional escribimos el siguiente cdigo

for (int i=0; i < matriz.length; i++)


{
for (int j=0; j <
matriz[i].length; j++) {

System.out.print(matriz[i][j]+"\t");
}
System.out.println("");
}

Como podemos apreciar, matriz.length nos proporciona el nmero de filas (cuatro), y


matriz[i].length, nos proporciona el nmero de elementos en cada fila.
Mostramos los elementos de una fila separados por un tabulador usando la funcin
print. Una vez completada una fila se pasa a la siguiente mediante println.

Los arrays bidimensionales nos permiten guardar los elementos de una matriz.
Queremos crear y mostrar una matriz cuadrada unidad de dimensin 4. Recordaremos
que una matriz unidad es aquella cuyos elementos son ceros excepto los de la diagonal
principal i==j, que son unos. Mediante un doble bucle for recorremos los elementos de
la matriz especificando su fila i y su columna j. En el siguiente programa

Se crea una matriz cuadrada de dimensin cuatro


Se inicializa los elementos de la matriz (matriz unidad)
Se muestra la matriz una fila debajo de la otra separando los elementos de una fila por
tabuladores.

public class MatrizUnidadApp {


public static void main (String[] args) {
double[][] mUnidad= new double[4][4];

for (int i=0; i < mUnidad.length; i++) {


for (int j=0; j < mUnidad[i].length;
j++) {
if (i == j) {
mUnidad[i][j]=1.0;
}else {
mUnidad[i][j] = 0.0;
}
}
}

for (int i=0; i < mUnidad.length; i++) {


for (int j=0; j < mUnidad[i].length;
j++) {

System.out.print(mUnidad[i][j]+"\t");
}
System.out.println("");
}
}
}

Un ejemplo del uso de break con etiqueta y arrays multidimensionales


int[][] matriz={ {32, 87, 3, 589},
{12, -30, 190, 0},
{622, 127, 981, -3, -5}};
int numero=12;
int i=0, j=0;

buscado:
for(i=0; i<matriz.length; i++){
for(j=0; j<matriz[i].length;
j++){
if(matriz[i][j]==numero){
break buscado;
}
}
}
System.out.println("buscado:
matriz("+ i+", "+j+")="+matriz[i][j]);

package matrizUnidad;

public class MatrizUnidadApp {


public static void main (String[] args) {
double[][] mUnidad= new double[4][4];

for (int i=0; i < mUnidad.length; i++) {


for (int j=0; j < mUnidad[i].length; j++) {
if (i == j) {
mUnidad[i][j]=1.0;
}else {
mUnidad[i][j] = 0.0;
}
}
}

for (int i=0; i < mUnidad.length; i++) {


for (int j=0; j < mUnidad[i].length; j++) {
System.out.print(mUnidad[i][j]+"\t");
}
System.out.println("");
}

try{
//espera la pulsacin de una tecla y luego RETORNO
System.in.read();
}catch (Exception ex) { }
}
}
Cuando vayamos a inicializar un array en Java tenemos varias posibilidades de hacerlo.
No es que haya una mejor que otra, sino que podramos decir que dependiendo de las
circunstancias que se nos den e incluso de la que nos guste ms.

La primera es en la propia declaracin del array:

String a[] =
{"Avila","Burgos","Len","Palencia","Salamanc
a",
"Segovia","Soria","Valladolid","Zamora"};

En este caso no hace falta que indiquemos numricamente el nmero de elementos, sino
que el tamao se calcular dependiendo de los elementos que pongamos entre las llaves.

La segunda forma es mediante la asignacin directa de elementos. Aqu, lo primero que


tenemos que hacer es declarar el array:

String b[] = new String[9];

Y despus ir asignando los elementos a sus respectivas posiciones. Siempre teniendo en


cuenta que el primer elemento del array es el cero.

b[0] = "Avila";
b[1] = "Burgos";
b[2] = "Len";
...

Como limitacin conceptual, la primera opcin ser ms deseada cuando conozcamos de


antemano los elementos del array. Ya que en el caso de que en un determinado punto de
nuestro programa no sepamos los elementos que van a formar parte del array, nos
veremos abocados a utilizar la segunda forma.

MATRIZ
Una matriz matemtica es una tabla bidimensional de nmeros. Las matrices pueden
sumarse, multiplicarse,... Y suelen ser utilizadas para describir sistemas de ecuaciones
lineales. Leer ms sobre matrices en Wikipedia.

Si queremos representar una matriz en Java hay que crear un array bidimensional. Por
ejemplo para declarar una matriz de 3x3 haramos lo siguiente:

1. int matriz[][] = new int[3][3];

Ahora procedemos a cargar la matriz con valores:

1.matriz[0][0] = 2;
2. matriz[0][1] = 4;
3. matriz[0][2] = 4;
4. matriz[1][0] = 6;
5. matriz[1][1] = 6;
6. matriz[1][2] = 9;
7. matriz[2][0] = 8;
8. matriz[2][1] = 10;
9. matriz[2][2] = 12;

Hay que recordar que los elementos empiezan a numerarse por 0. As la esquina superior
izquierda de la matriz ser el elemento [0][0] y la esquina inferior derecha ser el [2][2].

Podemos crear e instanciar la matriz en una nica lnea:

1. int [][] matriz =


{{2,4,4},{6,6,9},{8,10,12}};

De igual manera, si nos apoyamos en el mtodo .lenght del array podremos listar el
contenido de la matriz

1.for (int x=0; x < matriz.length; x++) {


2. for (int y=0; y < matriz[x].length;
y++) {
3. System.out.println (matriz[x][y]);
4. }
5. }

Anda mungkin juga menyukai