Java Collection Framework.
Java Collection Framework.
Collection
Contenedor general de cualquier coleccin que no
representa un Mapa, y por lo tanto, se comprende
como una coleccin de objetos. Es una estructura que
se define como un arreglo de longitud fija, donde la
cantidad mxima de objetos que se pueden contener
es la capacidad y la cantidad de objetos contenidos en
cierto momento es el tamao.
Map
Listas
La coleccin ms bsica de Java. Las listas se identifican debido
a que le otorgan ndices a cada uno de los elementos que
contienen, segn el orden al que es almacenado el elemento al
contenedor.
Poseen la capacidad de modificar su tamao mientras los
objetos entran y salen del contenedor. Adems, debido a que a
cada elemento se le designa un ndice a la lista se le conoce
tambin como una secuencia.
Tipos de Lista
ArrayList: Muy rpida accediendo a elementos, relativamente
rpida agregando elementos si su capacidad inicial y de
crecimiento estn bien configuradas. Es la lista que deberas
usar casi siempre.
Tipos de Lista
Vector: Vector es una coleccindeprecated,un vector
crece automticamente cuando alcanza la dimensin
inicial mxima. Adems, proporciona mtodos
adicionales para aadir, eliminar elementos, e insertar
elementos entre otros dos existentes.
Sets
Es una coleccin de objetos sin duplicados en la cual el orden
no es importante. Se le puede referir como un juego de
elementos.
Posee la sub-interfaz SortedSet que automticamente enlista
los elementos contenidos y los devuelve en orden. Adems de
otra, NavigableSet, la cual toma esta opcin a un nivel superior
aadiendo mtodos que encuentran las opciones ms cercanas
al objeto buscado.
Tipos de Set
HashSet: La implementacin ms equilibrada de la
interfaz Set. Es rpida y no permite duplicados, perono
tiene ningn tipo de ordenacin. Utilzala si necesitas
un control de duplicados pero no ningn tipo de
ordenacin o acceso aleatorio.
Maps
Los maps son colecciones que asocian un valor con una
clave. Tanto la clave como el valor pueden ser cualquier
tipo de datos de Java: Objetos, primitivos, otras
colecciones, etc.
Las implementaciones son muy parecidas a los Sets
debido a que, internamente, utilizan un Set (la
implementacin vara segn el tipo de Map) para
garantizar que no hay elementos duplicados en las
claves.
Tipos de Map
HashMap: La implementacin ms genrica de Map. Un
array clave->valor que no garantiza el orden de las
claves (de la misma forma que un HashSet). Si necesitas
un Map no-concurrente que no requiera ordenacin de
claves, este es el tuyo. El cdigo de HashSet, utiliza un
HashMap internamente.
Tipos de Map
SortedMap: Esta interfaz es muy similar a la interface Map. Tan solo se
diferencia en que SortedMap permite que los elementos dentro del conjunto
de la coleccin estn ordenados totalmente, facilitando por tanto su acceso
en bsquedas y haciendo ms rpido su consulta.
Los elementos del sortedmap (mapa ordenado) estn ordenados por sus
elementos claves.
Tipos de Map
HashTable: Mapdeprecatedy concurrente. Bsicamente, es un
HashMap concurrente que no debes usar nunca. En su lugar,
utiliza ConcurrentHashMap.
Notas finales
A la hora de usar colecciones en Java, lo ms importante es elegir el tipo de
coleccin. Cuando trabajemos con colecciones, siempre declararemos las
instancias con el nombre de su interfaz, aprovechando el enlace dinamico.
De esta forma, aunque la implementacin cambie en el futuro, podemos
tener claro que la aplicacin no va a dar fallos (ya que estamos usando las
interfaces y estas tienen los mtodos que usan sus implementaciones).
A la hora de escoger la implementacin de cada tipo de coleccin, debemos
verificar dos cosas:
Si estamos trabajando en un entorno concurrente o no.
En el rendimiento de las operaciones que vamos a necesitar en las
distintas implementaciones vlidas para nuestro entornos (concurrentes o
no).
https://docs.oracle.com/javase/8/docs/technotes/guides/collections/overview.html
http://www.conocimientosweb.net/dcmt/ficha20831.html
http://www.luaces-novo.es/guia-de-colecciones-en-java/
https://www.youtube.com/watch?v=zXZ1qSeuO90
http://docs.oracle.com/javase/8/docs/api/index.html
https://www.assembla.com/wiki/show/almejoLisp/JFC_-_Java_Collection_Framework_
http://aprenderaprogramar.com/index.php?
option=com_content&view=article&id=614:interfaces-map-y-sortedmap-del-apide-java-clases-hashmap-y-treemap-ejemplo-diferencias-cu00922c&catid=58:cursolenguaje-programacion-java-nivel-avanzado-i&Itemid=180