Cómo usar Collection, Set, List y Map en Java
Interfaces
Estos son los interfaces definidos para manejar diversas estructuras de datos en Java, todos ellos definidos en el paquete java.util.*:
- Collection
- Set
- SortedSet
- List
- Map
- SortedMap
Las relaciones de herencia existentes entre ellos son las siguientes:
Implantaciones
Estas son las clases que implementan dichos interfaces:
- HashSet: implementa Set
- HashMap: implementa Map
- ArrayList: implementa List
- TreeSet: implementa SortedSet
- TreeMap: implementa SortedMap
- LinkedList: implementa List
Principales características
Todas las clases que implementan la interfaz collection se usan de forma similar. Lo que cambia es la forma en que se almacenan los elementos:
- ordenados, con duplicidad, con acceso basado en una clave...
Algunas características:
- Los elementos de una Collection se pueden recorrer secuencialmente y son accesibles mediente un índice.
- Map contiene pares clave-objeto, de forma que los elementos son ordenados y son accesibles a través de sus claves.
- Para recorrer un Map debe antes extraerse de él una Collection.
- ArrayList y LinkedList pueden usarse amodo de pila, añadiendo y eliminando elementos.
- TreeMap y TreeSet están ordenados.
- Set y Map no pueden tener duplicados.
Almacenamiento de objetos
- HashSet, TreeSet
- set.add(object) - Añade en algún sitio, en el orden que tengan los elementos
- LinkedList
- list.add(object) - Añade al final
- list.add(index, object) - Añade en la posición dada por el índice, desplazando previamente los elementos necesarios
- ArrayList
- list.add(object) - Añade al final
- list.add(index, object) - Añade en la posición dada por el índice, desplazando previamente los elementos necesarios
- list.set(index,object) - Sobreescribe el elemento con dicho índice
- HashMap, TreeMap
- map.put(key,value) - El objeto con su clave se situan en el lugar que le corresponda según el orden de las claves.
Recuperación y manejo de objetos
Algunos métodos comunes son:
- clear( );
- size( );
- remove(object);
Para Collection:
- obj = c.remove(index);
- bool = c.contains(obj);
- objArr = c.toArray( );
En concreto para LinkedList y ArrayList:
- bool = c.contains(obj);
- objArr = c.toArray( );
Para HashMap y TreeMap:
- obj = m.get(key);
- obj = m.remove(key);
- bool = m.containsKey(key);
- bool = m.containsValue(key);
- collection = m.values( );
- set = m.keySet( );
Transformaciones
Se puede pasar de un tipo de estructura a otra, de forma que así se eliminen los duplicados, se ordenen los elementos, se cree un array, etc., según sea el caso.
Cualquier tipo de Collection puede transformarse a otra Collection, simplemente al crear una nueva instancia:
- Set set = new HashSet();
- .... rellenar el Set ....
- SortedSet ss = new TreeSet(set);
Los Map se transforman en Collection eliminando las claves:
- Collection col = tm.values();
Cualquier Collection puede transformarse en un Array:
- Object [] obj = collection.toArray();
Recorrer una Collection
La forma de recorrer una Collection es mediante un Iterator:
- for (Iterator it=coll.iterator(); it.hasNext( ); ) {
- Object anObject = it.next( );
- System.out.println( anObject );
- }


2 comentarios
Bueno, solo un poco mas de explicacion no me la mandes asi como asi... gracias!!!
gracias muy util la informacion!
Publicar un comentario en la entrada