Вы находитесь на странице: 1из 17

INACAP

Universidad Tecnolgica de Chile


Sede Santiago Centro

Taller de Programacin I

Curso Java J2SE

Tema 04:
Arreglos y Matrices
en Java

Ing. Manuel Lpez Ramos


(versin 2)
Parte I

Arreglos en Java
Arreglos en Java
Un arreglo es una estructura de datos lineal, que puede almacenar 1 ms datos, y que
presenta slo una dimensin (1 dimensin = largo).

variable Posiciones
de datos

Celdas de datos

referencia

Los datos de un arreglo se almacenan en celdas de memoria, de manera contigua. A cada


celda se le asigna un nmero entero que indica la posicin de un dato con respecto a los
dems.

La primera posicin es la cero; la ltima posicin es igual al largo del arreglo menos 1.
Los arreglos, al igual que los strings, tienen una propiedad
fundamental: su largo o cantidad de celdas de datos.

a) primera posicin del arreglo = 0


b) ltima posicin del arreglo = largo del arreglo - 1
Arreglos en Java
Los arreglos slo pueden almacenar datos de un slo tipo primitivo o de un slo tipo de objetos.

Para definir un arreglo se debe indicar: el tipo de todos sus datos, la cantidad de celdas de memoria (o
posiciones) a generar y un nombre de variable. Para crear las celdas se utiliza la palabra clave new.

Los arreglos son tipos de datos para los cuales, una vez definido el largo del arreglo, ste no puede ser
modificado con posterioridad -> arreglos de largo no modificable

arreglo nulo
a) Forma de C:

int arrDatos[]; // slo declaracin

char arrLetras[] = new char[4];

b) Forma de Java:

int[] arrDatos = new int[5];

float[] notasCurso = new float[6];


Arreglos en Java
Para inicializar un arreglo, basta con definir sus elementos entre llaves, separados con
comas. Esto automticamente crea celdas de datos para cada elemento.
int[] arrDatos = {9, 8, 7, 6, 5};

float[] notasCurso = {4.0F, 1.0F, 6.5F, 5.5F, 7.0F, 4.5F};

boolean[] estadoPersonaje = {false, true};


Arreglos en Java
Diferentes formas de declaracin y definicin de arreglos: notar que los arreglos tambin
utilizan la notacin de referencias para unir la variable con el espacio para datos.
int[] arrDatos;
int[] arrDatos = null;
arreglo nulo
(sin espacio para datos)

int[] arrDatos = new int[5];

espacio de datos
inicializado con ceros
int[] arrDatos = {9, 8, 7, 6, 5};

espacio con datos


inicializados
explcitamente
Arreglos en Java
Arreglos de strings (o de cualquier objeto): notar que para un arreglo de objetos (por ejemplo de
strings) la notacin grfica de referencias indica cuatro elementos:

la variable
la referencia de la variable al espacio de datos
el espacio de datos (que contiene referencias a 1 varios strings)
los strings, en otras celdas de memoria.

Por ejemplo,recordando cmo se representaba una variable de string, se tiene que:

String frase3 = String[] diccionario =


"Buenas noches!"; {"rbol", "barco", "casa", "dado", "e"};
Arreglos en Java
Para almacenar un nuevo dato en el arreglo, se debe indicar el nombre del arreglo, la
posicin a utilizar y el nuevo dato a almacenar.
int[] arrDatos = {9, 8, 7, 6, 5};

arrDatos[3] = 45; nuevo dato a almacenar

posicin de la celda a utilizar

arrDatos[1] = -234;
Arreglos en Java
Para utilizar un dato de un arreglo basta con indicar el nombre del arreglo y la posicin que
se requiera.

int total = arrDatos[0] + arrDatos[2] * 3 - arrDatos[4];

arrDatos[2] = arrDatos[0] - total;


Parte II

Matrices en Java
Matrices en Java
Las matrices son estructuras de datos derivadas de los arreglos, que puede almacenar 1
ms datos, y que presentan dos ms dimensiones (largo, ancho, profundidad, etc.) Las
ms populares son las de 2 y 3 dimensiones, aunque pueden existir matrices con ms
dimensiones, si as se requiere.
Posiciones
de columna

variable

referencia Posiciones
Celdas de datos de fila

En cada dimensin, la primera posicin es la cero; la ltima posicin de cada dimensin es


igual al largo de la dimensin menos 1.
Matrices en Java
Las matrices, al igual que los arreglos, slo pueden almacenar datos de un slo tipo primitivo o de un
slo tipo de objetos y su tamao, una vez definido, no se puede modificar, a menos que se desee perder
todos los datos ya almacenados en ella.

Si slo se declara una matriz, su inicializacin por defecto ser hecha con el valor null.

a) Forma de Java:

int[][] matDatos; matriz nula


int[][] matDatos = null;

int[][] matDatos = new int[3][5];


columnas

filas
Matrices en Java
Para inicializar una matriz, basta con definir sus elementos entre llaves, separados con
comas. La inicializacin consta de los siguientes elementos:

un par de llaves externas para definir toda la matriz


pares de llaves internas para definir filas de la matriz, segn la cantidad de dimensiones
que tenga la estructura.

Por ejemplo, para una matriz de 3 filas x 5 columnas (2 dimensiones), se define lo siguiente:

int[][] matDatos =
{
{ 4, -1, 5, 0, 9 }, // Fila 0
{ 292, 12, -34, 67, -8 }, // Fila 1
{ 45, 0, 0, 0, 1} // Fila 2
};
Matrices en Java
Para almacenar un nuevo dato en la matriz, se debe indicar el nombre de la matriz, la
posicin a utilizar (con una coordenada de N valores para N dimensiones) y el nuevo dato a
almacenar.
int[][] matDatos = { { 4, -1, 5, 0, 9 }, { 292, 12, -34, 67, -8 },
{ 45, 0, 0, 0, 1} };

posicin de fila-columna

matDatos[2][3] = -10;

nuevo dato a almacenar


Matrices en Java
Para leer un dato de la matriz y utilizarlo, se especifican sus coordenadas de fila-columna
dentro de una expresin aritmtica u operatoria de objetos.

int[][] matDatos = { { 4, -1, 5, 0, 9 }, { 292, 12, -34, 67, -8 },


{ 45, 0, 0, -10, 1} };

System.out.println( matDatos[2][3] + matDatos[1][2] );

+
Matrices en Java
Nota importante: la representacin de matrices utilizada en las diapositivas anteriores puede
ser considerada como una simplificacin, debido a que la forma real define cada una de las
filas como independiente de las dems (como lo indica el diagrama siguiente):

La independencia de las filas permite inclusive crear matrices con filas de diferente tamao
(por ejemplo, la fila 0 con 5 celdas, la fila 1 con 20 celdas y la fila 2 con 100 celdas, todas
dentro de la misma matriz).
Propiedades de los arreglos y matrices (en Java)

Notas importantes:

1.- La cantidad de elementos del arreglo (el largo) de arr1 es igual a:

largoArreglo = arr1.length()

2.- La cantidad de filas de la matriz mat1 es igual a:

totalFilas = mat1.length()

3.- La cantidad de columnas de la fila nF de la matriz mat1 es igual a:

totalCols = mat1[nF].length()

NOTA: para una matriz rectangular, la cantidad de columnas de cada fila es igual a:

totalCols = mat1[0].length()

Вам также может понравиться