Documente Academic
Documente Profesional
Documente Cultură
UNIDAD II
Cap. 19 - Colecciones
Sntesis
09 / 03 / 2015
Introduccin:
En este captulo trataremos el marco de colecciones de Java, las cuales sirven
para manejar la estructura de datos en un nivel ms alto (no slo crear y manipular
de manera laboriosa y dinmica cada elemento de las estructuras de datos),
adems de que contiene interfaces y algoritmos pre empaquetados para manipular
esas estructuras.
Algunos ejemplos de colecciones son las tarjetas que contiene un mazo de cartas,
la msica que esta almacenada en la computadora, los miembros de un equipo
deportivo, registros que se tienen, etc.
Tambin se trataran los genricos en el marco de colecciones de Java Con las
colecciones los programadores utilizan las estructuras de datos existentes sin
tener que preocuparse por la menar en que estas se implementan.
Con esto obtenemos un ejemplo muy bueno que es la reutilizacin de cdigo,
adems de que los programadores pueden codificar ms rpido y esperar un
excelente rendimiento, maximizando la velocidad de ejecucin y maximizando el
consumo de memoria. Las interfaces describen las capacidades de cada tipo de
coleccin, las clases de implementacin, los algoritmos que procesan a las
colecciones y los denominados iteradores, junto con la sintaxis de la instruccin for
mejorada para recorrer las colecciones.
Este marco de Java proporciona componentes reutilizables, listos para utilizarse
(sin tener que escribir sus propias clases de colecciones, aunque se puede hacer)
que estn estandarizados, de manera que las aplicaciones puedan compartirlas
fcilmente sin tener que preocuparse por los detalles relacionados con su
implementacin. Este marco de colecciones tambin fomenta an ms la
reutilizacin. A medida que se desarrollen estructuras de datos y algoritmos que
se ejecuten a este marco de trabajo, una extensa base de programadores estar
ya familiarizada con las interfaces y algoritmos implementados por esas
estructuras de datos.
Conceptos.
Una coleccin es una estructura de datos (un objeto) que puede guardar
referencias a otros objetos. Por lo general, las colecciones contienen referencias a
objetos, los cuales son todos del mismo tipo. Las interfaces del marco de
trabajo de colecciones declaran las operaciones que se deben realizar en
forma genrica en varios tipos de colecciones.
La clase Arrays.
La clase Arrays proporciona mtodos static para manipular arreglos,
incluyendo a sort para ordenar un arreglo, a binarySearch para buscar en un
arreglo ordenado, a equals para comparar arreglos y a fill para colocar elementos
en un arreglo. El mtodo asList de Arrays devuelve una vista List de un arreglo, la
cual permite a un programa manipular el arreglo como si fuera un objeto List.
Cualquier modificacin realizada a travs de la lista List modifica el arreglo, y
cualquier modificacin al arreglo modifica a la vista List. El mtodo size obtiene el
nmero de elementos en un objeto List, y el mtodo get devuelve un elemento del
objeto List.
Listas.
Un objeto List es un objeto Collection, que puede contener elementos duplicados.
La interfaz List se implementa mediante las clases ArrayList, LlinkedList y Vector.
La clase ArrayList es una implementacin de tipo arreglo de un objeto List,
que puede cambiar su tamao. Un objeto LinkedList es una implementacin tipo
lista enlazad en un objeto List.
El mtodo hasNext de Iterator determina si un objeto Collection contiene otro
elemento. El mtodo next devuelve una referencia al siguiente objeto en el objeto
Collections y avanza un objeto Iterator.
El mtodo subList devuelve una vista de una porcin de un objeto List. Cualquier
modificacin realizada en esta vista se realiza tambin en el objeto List.
El mtodo clear elimina elementos de un objeto List.
El mtodo toArray devuelve el contenido de una coleccin, en forma de un arreglo.
Algoritmos de colecciones
Los algoritmos sort, binarySearch, reverse, shuffle, fill y copy operan en objetos
List. Los algoritmos min y max operan en objetos Collection. El algoritmo reverse
invierte los elementos de un objeto List, el algoritmo fill establece cada elemento
del objeto List a un objeto Object especificado, y copy copia elementos de un
objeto List a otro objeto List. El algoritmo sort ordena los elementos de un objeto
List.
El algoritmo addAll anexa a una coleccin todos los elementos en un arreglo, el
algoritmo frequency calcula cuntos elementos en la coleccin son iguales al
elemento especificado, y disjoint determina si dos colecciones tienen elementos en
comn.
Los algoritmos min y max buscan los elementos mayor y menor en una coleccin.
La interfaz Comparator proporciona un medio para ordenar los elementos de un
objeto Collection en un orden distinto a su orden natural.
El mtodo reverseOrder de Collections devuelve un objeto Comparator que puede
usarse con sort para ordenar elementos de una coleccin en forma inversa.
El algoritmo shuffle ordena al azar los elementos de un objeto List.
El algoritmo binarySearch localiza un objeto Object en un objeto List ordenado.
Conjuntos
Un objeto Set es un objeto Collection que no contiene elementos duplicados.
HashSet almacena sus elementos en una tabla de hash. TreeSet almacena sus
elementos en un rbol.
La interfaz SortedSet extiende a Set y representa un conjunto que mantiene sus
elementos ordenados. La clase TreeSet implementa a SortedSet.
El mtodo headSet de TreeSet obtiene una vista de un objeto TreeSet que es
menor a un elemento especificado.
El mtodo tailSet obtiene una vista que es mayor o igual a un elemento
especificado. Cualquier modificacin realizada a la vista se realiza al objeto
TreeSet.
Mapas
Los objetos Map asocian claves con valores y no pueden contener claves
duplicadas. Los objetos Map difieren de los objetos Set en cuanto a que los
objetos Map contienen tanto claves como valores, mientras que los objetos Set
slo contienen valores. Los objetos HashMap almacenan elementos en una tabla
de hash, y los objetos TreeMap almacenan elementos en un rbol.
Los objetos Hashtable y HashMap almacenan elementos en tablas de hash, y los
objetos TreeMap almacenan elementos en rboles.
HashMap es una clase genrica que recibe dos argumentos de tipo. El primer
argumento de tipo especifica el tipo de la clave, y el segundo especifica el tipo de
valor.
La clase Properties
Un objeto Properties es un objeto Hashtable persistente. La clase Properties
extiende a Hashtable.
El constructor de Properties sin argumentos crea una tabla Properties vaca sin
propiedades predeterminadas.
Tambin hay un constructor sobrecargado que recibe una referencia a un objeto
Properties predeterminado que contiene valores de propiedades predeterminados.
El mtodo setProperty de Properties especifica el valor asociado con el argumento
tipo clave. El mtodo getProperty de Properties localiza el valor de la clave
especificada como argumento. El mtodo store guarda el contenido del objeto
Properties en el objeto OutputStream especificado como el primer argumento. El
mtodo load restaura el contenido del objeto Properties del objeto InputStream
que se especifica como el argumento.
Colecciones sincronizadas
Las colecciones del marco de trabajo de colecciones estn desincronizadas. Las
envolturas de sincronizacin se proporcionan para las colecciones a las que
pueden acceder varios subprocesos en forma simultnea.
Colecciones no modificables
La API Collections proporciona un conjunto de mtodos public static para convertir
colecciones en versiones no modificables. Las envolturas no modificables lanzan
excepciones UnsupportedOperationException si hay intentos de modificar la
coleccin.
Implementaciones abstractas.
El marco de trabajo de colecciones proporciona varias implementaciones
abstractas de las interfaces de colecciones, a partir de las cuales el programador
puede crear rpidamente implementaciones personalizadas completas.
Conclusiones
En este captulo se present el marco de trabajo de colecciones de Java. Aprendi
a utilizar la clase Arrays para realizar manipulaciones con arreglos. Conoci la
jerarqua de colecciones y aprendi a utilizar las interfaces del marco de trabajo de
colecciones para programar con las colecciones mediante el polimorfismo.
Tambin conoci varios algoritmos predefinidos para manipular colecciones. En el
siguiente captulo presentaremos los applets de Java, los cuales son programas
en Java que, por lo general, se ejecutan en un explorador Web. Empezaremos con
applets de ejemplo que vienen con el JDK, y despus le mostraremos cmo
escribir y ejecutar sus propios applets.
Cuestionario de autoevaluacin.