PDF de programación - Tema 5 - Arreglos y cadenas en Java

Imágen de pdf Tema 5 - Arreglos y cadenas en Java

Tema 5 - Arreglos y cadenas en Javagráfica de visualizaciones

Publicado el 11 de Junio del 2018
981 visualizaciones desde el 11 de Junio del 2018
160,7 KB
60 paginas
Creado hace 12a (26/04/2012)
Tema 5

Arreglos y Cadenas en Java



Arreglos


Un arreglo es una lista de variables del mismo tipo que se encuentran en localidades
contiguas de memoria y que comparten el mismo nombre. Cada una de las variables de
la lista, llamadas elementos, puede ser accedida por el nombre del arreglo y su posición
en él. Dependiendo de la distribución lógica (no física) de sus elementos, los arreglos
pueden clasificarse en:


• Unidimensionales, si visualizamos a los elementos acomodados en una fila (o

columna).

• Bidimensionales, si los visualizamos acomodados en una tabla.
• Tridimensionales, si los visualizamos acomodados en varias tablas formando una

estructura tridimensional.

• Etc. No hay restricciones en el número de dimensiones que un arreglo pueda

tener.



Arreglos Unidimensionales


En un arreglo unidimensional, la posición de un elemento en el arreglo está dada por un
valor entero llamado índice que representa la distancia de ese elemento con respecto al
primer elemento del arreglo. Por ejemplo si deseamos almacenar las calificaciones de un
grupo de alumnos podemos tener un arreglo llamado califs formado de 50 variables:



El número entre corchetes es el índice. Note que el primer elemento tiene un índice igual
a 0 y el último un índice igual a n-1, donde n es el número de elementos del arreglo.



califs[0] representa la calificación del primer alumno,
califs[1] representa la calificación del segundo alumno, etc.

ITSON



Manuel Domitsu Kono



Arreglos y Cadenas en Java

tipo nomArreglo[];

114

Referencia a un Arreglo Unidimensional

Al igual que con los objetos, el nombre de un arreglo es una referencia al arreglo, esto es,
utilizamos el nombre para acceder a los elementos del arreglo.

La sintaxis para declarar la referencia a un arreglo unidimensional es la siguiente:



ó



tipo es el tipo base del arreglo, el tipo de cada una de las variables que forman el
arreglo, y puede ser cualquier tipo de datos: primitivos o clases. nomArreglo es un
identificador, el nombre de la referencia al arreglo.

Por ejemplo:


tipo[] nomArreglo;

int califs[];
double[] precios;
Cancion canciones[];

nomArreglo = new tipo[tamArreglo];

Creación de un Arreglo Unidimensional

Al igual que con los objetos, los arreglos deben crearse antes de emplearse, esto reserva
memoria para el arreglo. La sintaxis para crear un arreglo es la siguiente:



tamArreglo es una expresión de tipo entero que indica el tamaño del arreglo, el número
de variables de la lista. Los corchetes encerrando a tamArreglo no indican que éste sea
opcional. Aquí forman parte de la sintaxis de la creación de un arreglo.

Por ejemplo:


califs = new int[50];
precios = new double[100];
canciones = new Cancion[20];


La declaración de la referencia a un arreglo y el reservado de memoria para el mismo
pueden combinarse en una sentencia cuya sintaxis es:

tipo nomArreglo[] = new tipo[tamArreglo];


ó


ITSON



Manuel Domitsu Kono

Tema 5

Arreglos y Cadenas en Java

115

tipo[] nomArreglo = new tipo[tamArreglo];



Por ejemplo:


int califs[] = new int[50];
double[] precios = new double[100];
Cancion canciones[] = new Cancion[20];

tipo nomArreglo[] = {cte1 [, cte2] ... }

Inicialización de Arreglos Unidimensionales

Los arreglos al igual que las variables de los tipos básicos pueden inicializarse al
momento de crearse. La sintaxis para inicializar un arreglo es


ó



Donde cte1 [, cte2] ... es una lista de constantes encerrada entre llaves, { y },
que son los valores a los que se inicializan los elementos del arreglo. El tamaño del
arreglo es el número de constantes. Por ejemplo, en la declaración



estamos declarando al arreglo x y lo estamos inicializando a:


tipo[] nomArreglo = {cte1 [, cte2] ... }

int x[] = {0, 1, 2, 3, 4};

0

1

2

x

3

4

Acceso a los elementos de un Arreglo Unidimensional

Para acceder a un elemento de un arreglo unidimensional se utiliza el nombre del
elemento, tal como lo haríamos con cualquier variable. El nombre de cada elemento de un
arreglo está formado por el nombre del arreglo y su posición en el arreglo. Esta posición
se conoce como el índice del elemento. El índice del primer elemento de un arreglo
siempre es cero. El índice de un elemento puede expresarse mediante cualquier
expresión entera que al evaluarse nos indica el elemento en particular al que queremos
acceder. Por ejemplo



le asigna al quinto elemento del arreglo califs el valor de 8.



accede al i-ésimo elemento del arreglo califs, mientras que



califs[4] = 8;

califs[i]

mats[j + 3]

ITSON



Manuel Domitsu Kono



Arreglos y Cadenas en Java

suma = 0;
for(i = 0; i < nAlumnos; i++) suma += califs[i];
promedio = (double)suma/nAlumnos;


116

accede al j-ésimo + 3 elemento del arreglo mats.

Por ejemplo supongamos que deseamos acceder en forma secuencial a los elementos
del arreglo califs para sacar el promedio de las calificaciones. El código para hacer
esto sería



donde nAlumnos es el número de calificaciones que están almacenadas en el arreglo.
Este valor puede ser menor o igual al tamaño del arreglo califs.

Cada vez que se le asigna un valor u objeto a un elemento de un arreglo, el sistema de
ejecución de Java verifica que el tipo del arreglo sea compatible con el tipo del valor u
objeto asignársele. Si no son compatibles ocurre una excepción del tipo:
java.lang.ArrayStoreException.

Cada vez que se accede a un elemento de un arreglo, el sistema de ejecución de Java
verifica que el valor del índice es un valor válido, esto es, que es número comprendido
entre 0 y tamArreglo – 1. De no ser así ocurre una excepción del tipo:
java.lang.ArrayIndexOutOfBoundsException.
Arreglos Unidimensionales y Métodos

En Java los arreglos son objetos. Podemos obtener el tamaño del arreglo en elementos
de la siguiente manera:



En Java podemos pasarle como parámetro a un método, una referencia a un arreglo. No
se le está pasando una copia del arreglo, sólo la referencia. La sintaxis de un parámetro
que representa la referencia a un arreglo unidimensional es la siguiente:



donde tipo es el tipo base del arreglo y nomParArreglo es el nombre del parámetro
que representa la referencia al arreglo. Note que los corchetes están vacíos.

Al llamar al método, el argumento será la referencia al arreglo, el cual es el nombre del
arreglo:



También es posible que un método nos regrese una referencia a un arreglo. La sintaxis
para declarar que el método regresa una referencia a un arreglo unidimensional es:


tipo nomParArreglo[]

nomArreglo.length

nomArreglo

ITSON



Manuel Domitsu Kono

Tema 5

Arreglos y Cadenas en Java

117

tipo[] nomMetodo() {
...
}



donde tipo es el tipo base del arreglo y nomMetodo es el nombre del método que nos
regresa la referencia a un arreglo.
Ejemplos Sobre Arreglos Unidimensionales

Para el ejemplo del programa del amante de la música y el cine, se desea implementar
un mecanismo que permita catalogar (almacenar y consultar) su colección. En este
tema el mecanismo se implementará usando arreglos, aunque los arreglos no permiten
almacenar permanentemente los datos. Más adelante se modificará este mecanismo
para que emplee archivos y una base de datos.

Dado que los arreglos tienen un tamaño fijo definido al tiempo de compilación, es
posible que el arreglo se llene y no se puedan agregar más datos. En lugar de verificar
si hay espacio en el arreglo para almacenar un dato, dejaremos que el sistema de
ejecución de Java lance una excepción del tipo
java.lang.ArrayIndexOutOfBoundsException si queremos acceder más allá de
los límites del arreglo, atraparemos esa excepción y relanzaremos una excepción
encadenada del tipo PersistenciaException. Por otro lado si al querer modificar o
eliminar un dato, el dato no existe, también se lanzará una excepción del tipo
PersistenciaException. El siguiente código muestra la implementación de la
excepción PersistenciaException.



PersistenciaException.java

/*
* PersistenciaException.java
*
* Creada el 13 de septiembre de 2007, 12:01 AM
*/

package excepciones;

/**
* Esta clase representa a las excepciones lanzadas por las clases
* que encapsulan la persistencia.
*
* @author mdomitsu
*/
public class PersistenciaException extends RuntimeException {
/**
* Constructor por omisión. Construye una excepción con un mensaje de error
* nulo.
*/
public PersistenciaException() {
}

/**
* Construye una excepción con el mensaje de error del parámetro.

ITSON



Manuel Domitsu Kono



Arreglos y Cadenas en Java

118

* @param msj Mensaje de error.
*/
public PersistenciaException(String msj) {
super(msj);
}

/**
* Construye una excepción con el mensaje de error del parámetro y la causa
* original del error.
* @param msj Mensaje de error.
* @param causa Causa original del error.
*/
public PersistenciaException(String msj, Throwable causa) {
super(msj, causa);
}

/**
* Construye una excepción la causa original del error.
* @param causa Causa original del error.
*/
public PersistenciaException(Throwable causa) {
super(causa);
}
}

Para encapsular el mecanismo de almacenamiento de los datos se construyen cuatro
clases nuevas: Medios, Canciones, Peliculas y Generos se muestran en el
diagrama de clases de la figura 5.1

Figura 5.1



ITSON



Manuel Domitsu Kono

Tema 5

Arreglos y Cadenas en Java

119

La clase Medios tiene como atributos una referencia a un arreglo de tipo Medio y un
entero con el número de medios en el catálogo. Los métodos de la clase Medios
permiten buscar un medio dentro del catálogo dada su clave, agregar, actualizar y
eliminar un medio al catálogo, listar los medios que sea
  • Links de descarga
http://lwp-l.com/pdf11784

Comentarios de: Tema 5 - Arreglos y cadenas en Java (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad