13 Colecciones en Java
13 Colecciones en Java
13 Colecciones en Java
CONJUNTOS
Los conjuntos son estructuras de datos donde los elementos no
tienen un orden y no se permiten duplicados. Para definirlos se utiliza
la interfaz Set<E>, que no aade nuevos mtodos a la
interfaz Collection<E>. Por lo tanto, con los mtodos anteriores
podrs manipular tus conjuntos.
1.
2.
3.
LISTAS
Una lista es una estructura secuencial, donde cada elemento tiene un
ndice o posicin. Tambin recibe el nombre de array o vector
unidimensional. El ndice de una lista es siempre un entero y el
primer elemento ocupa la posicin 0. Para trabajar con ellas se
utiliza el interfaz List<E>. Las implementaciones ms recomendables
son: ArrayList<E>si queremos acceder a una posicin de forma muy
rpida oLinkedList<E> si queremos inserciones y borrado muy
rpidos.
La interfaz List<E> hereda todos los mtodos de Collection<E> y
aade los siguientes:
boolean add(int indice, E e): Inserta un nuevo
elemento en una posicin. El elemento que estaba en esta
posicin y los siguientes pararn a la siguiente.
E get(int indice): Devuelve el elemento en la posicin
especificada.
1.
public LugaresVector() {
vectorLugares = ejemploLugares();
}
return lugares;
}
}
3. Pulsa Alt-Intro e para que se aadan los import de las clases
utilizadas.
import java.util.ArrayList;
import java.util.List;
4. Aade la siguiente sobrecarga al constructor a la
clase Lugar:
public Lugar() {
fecha = System.currentTimeMillis();
posicion = new GeoPunto(0,0);
tipo = TipoLugar.OTROS;
}
Esto nos permitir crear un nuevo lugar sin indicar sus atributos.
5. Abre la clase Principal y reemplaza el cdigo del
mtodo main() por:
DICCIONARIOS
Nota: Este apartado no es imprescindible para el curso. Puedes
saltrtelo.
Los diccionarios (o matrices asociativas) son estructuras de datos
donde cada elemento tiene asociado una clave que usaremos para
recuperarlo (en lugar del ndice de una lista). Para definirlos se utiliza
la interfazMap<K,V>. En este caso se trabaja con dos clases una que
se utiliza como clave (K) y otra para almacenar los valores (V). La
idea es que cada elemento se almacena mediante un par de objetos
(K,V). Esta estructura de datos nos permite obtener el objeto V muy
rpidamente, a partir de su clave K. Por ejemplo, podramos
almacenar objetos de la clase Vehiculo y utilizar como clave su
matrcula en un String. De esta forma, a partir de la matrcula un
diccionario encontrara el vehculo asociado muy rpidamente.
Podemos utilizar las siguientes implementaciones de este
interfaz:HashMap<K,V>,TreeMap<K,V>,LinkedHashMap<K,V>
Veamos los mtodos del interfaz Map<K,V> (Ojo. A diferencia de otras
colecciones no hereda del interfazCollection<E>) ).
V put(K key, V value): Aade un nuevo par clave-valor al
diccionario.
V get(Object key): Da el valor asociado a una clave
o null si no se encontr.
V remove(Object key): Elimina el par clave-valor que
corresponde a la clave.
boolean containsKey(Object key): Comprueba si est la
clave especificada.
boolean containsValue(Object value): Comprueba si est
el valor.
Set keySet(): Devuelve un conjunto con las claves
contenidas en el diccionario.
Collection values(): Devuelve una coleccin con solo los
valores.
Enlace de inters: