Las colecciones proporcionan programación genérica para muchas estructuras de datos. Una colección
es una agrupación de objetos relacionados que forma una única entidad; por ejemplo, un
array de objetos, un conjunto. El array, el vector, la matriz, en general, una Colección, es en sí
misma otro objeto que se debe crear. Por ejemplo:
class Pueblo { .... };
class Puerto { ... };
Pueblo [] col1 = new Pueblo[100];
Puerto [] col2 = new Puerto [100];
LinkedList <String> conCad = // Lista de cadenas (en Java 1.5)
new LinkedList <String>();
Las colecciones incluyen: clases contenedoras para almacenar objetos, iteradores para acceder
a los objetos en el interior de los contenedores y algoritmos para manipular los objetos
(métodos de clases).
Las clases Colección guardan objetos de cualquier tipo; de hecho, el elemento base es Object
y, por consiguiente, debido a la conversión automática, se podrá añadir a la colección un objeto de
cualquier tipo.
EJEMPLO:
Considerar una aplicación en la que se debe almacenar n objetos del tipo Punto2D, Punto3D
y PuntoPolar.
Se realiza un almacenamiento secuencial, para ello se declara una array de tipo Object.
De esa forma se puede asignar cualquier objeto. El problema surge al recuperar los elementos
del array, ya que se debe hacer un cast al tipo clase, que puede ser Punto2D, Punto3D y
PuntoPolar.
class Punto2D { ... }
class Punto3D { ... }
class PuntoPolar { ... }
La declaración y creación del array de N elementos es:
final int N = 99;
Object [] rr = new Object[N];
int i = 0;
Asignación secuencial de objetos:
mas = true;
while (mas && (i < N))
{
int opc;
opc = menu();
if (opc == 1)
rr[i++] = new Punto2D();
else if (opc == 2)
rr[i++] = new Punto3D();
if (opc == 3)
rr[i++] = new PuntoPolar();
else mas = false;
}
Asignar elementos en un array es una operación muy eficiente. Una de las limitaciones
de los arrays es el tamaño, dado que al ser su tamaño fijo si se llena hay que ampliarlo. Por
el contrario, una característica importante de las clases Colección es que se redimensionan
automáticamente y, en consecuencia, el programador se despreocupa de controlar el número de
elementos, y puede colocar tantos elementos como sea necesario.
Cuando se vaya a trabajar con tipos de datos simples, o cuando se conozca el tipo
de dato de los elementos y el tamaño final, resulta muy eficiente utilizar arrays. En
cualquier otro caso, será conveniente utilizar alguna de las colecciones proporcionadas
en java.util.
No hay comentarios.:
Publicar un comentario
Es muy importante tu comentarios: