Programación II
Colecciones
Iterator
Iterator <E> i = [Link]();
boolean [Link](); Devuelve true si hay más elementos, si no false
Devuelve el siguiente objeto de la colección,
E [Link]();
si no hay más elementos NoSuchElementException
void [Link](); Elimina el elemento actual
Set
No puede contener elementos repetidos
int .size(); Devuelve el tamaño del conjunto
boolean .isEmpty(); True si esta vacío
boolean .contains(Object o); True si contiene el elemento
boolean .add (E element); Añade el elemento al conjunto
Devuelve true si la colección no contiene el elemento
boolean .remove(Object o); Elimina el elemento del conjunto
Devuelve true si la colección contiene el objeto
- HashSet
No garantiza el orden de los elementos
HashSet<”Tipo”> nombreSet = new HashSet<”Tipo”>();
- Linked HashSet
Ordenado según el orden de inserción
LinkedHashSet<”Tipo”> nombreSet = new LinkedHashSet<”Tipo”>();
- TreeSet
Ordenados según el criterio que elijamos.
TreeSet<”Tipo”> nombreSet = new TreeSet<”Tipo”>();
Listas
Colección de objetos ordenada por su posición, puede haber elementos repetidos.
E .get (int index); Devuelve el objeto de la posición indicada
Remplaza el elemento en la posición indicada con
E .set (int index, E element); el elemento especificado.
Devuelve el elemento que estaba guardado
Añade el elemento a la posición indicada
void .add (int index, E element);
desplazando todos los demás una posición
Añade el elemento al final de la lista
boolean .add (E element);
Devuelve true si el elemento se ha añadido
Elimina el elemento de la posición indicada
E .remove (int index);
Devuelve el elemento borrado
Elimina el elemento indicado
boolean .remove (E element);
Devuelve true si la lista contiene el objeto
Devuelve la posición del primer objeto
int .indexOf(Object o);
-1 si no contiene el elemento
Devuelve la posición del ultimo objeto
int .lastIndexOf(Object o);
-1 si no contiene el elemento
int .size(); Devuelve el número de elementos de la lista
boolean .isEmpty(); True si esta vacía
boolean .contains(Object o); True si contiene el objeto
1
Programación II
- ListIterator
Tienen sus propios iteradores más avanzados:
ListIterator<E> i = [Link]();
boolean [Link](); Devuelve true si hay más elementos, si no false
E [Link](); Devuelve el siguiente objeto de la lista y aumenta el cursor
si no hay más elementos NoSuchElementException
boolean [Link](); Devuelve true si hay más elementos previos, si no false
E [Link](); Devuelve el objeto previo de la lista y retrasa el cursor
si no hay más elementos NoSuchElementException
int [Link](); Devuelve el índice del siguiente elemento
int [Link](); Devuelve el índice del elemento previo
void [Link](); Elimina el elemento actual
- ArrayList
Se accede a los elementos de forma aleatorio
ArrayList <E> nombreLista = new ArrayList <E> ();
- LinkedList
Se mantiene el orden de inserción de los elementos al recorrer la lista (next y previous)
LinkedList <E> nombreLista = new LinkedList <E> ();
Operaciones específicas de LinkedList:
E .getFirst() Devuelve el primer elemento
E .getLast(); Devuelve el último elemento
E .removeFirst(); Elimina el primer elemento
Devuelve el primer elemento
E .remove Last(); Elimina el primer elemento
Devuelve el primer elemento
void .addFirst(E o); Añade el elemento al principio
void .addLast(E o); Añade el elemento al final
Pasar List a Array (toArray)
nombreArray = [Link](nombreArray);
//Guarda cada elemento de la lista en una de las posiciones del array creado
Mapas
Un Map es un objeto que permite "asociar" una clave (K) y un valor (V).
Un mapa no puede contener objetos con clave duplicada.
int .size(); Devuelve el número de elementos
boolean .isEmpty(); Devuelve true si esta vacio
Value .put(K key, V value); Añade un Value con una Key asociada
Value .get(K key); Devuelve el Value de la Key
Devuelve 'null' si la Key no existe
void .clear(); Vacia el mapa
Value .remove(); Elimina el objeto asociado a la Key
Devuelve el Value asociado a la Key o “null”
boolean .containsKey(K key); Devuelve true si contiene la Key
boolean .containsValue(V value); Devuelve true si contiene el Value
2
Programación II
- HashMap
Los elementos no tienen orden específico. No aceptan claves duplicadas ni valores nulos.
Map <K,V> nombreMap = new HashMap <K,V>();
- LinkedHashMap
Inserta en el Map los elementos en el orden en el que se van insertando
Map <K,V> nombreMap = new LinkedHashMap <K,V>();
- TreeMap
El Mapa lo ordena según la Key. (si la clave son “int”, los ordena de menos a mayor.)
Map <K,V> nombreMap = new TreeMap <K,V>();
Pasar de Map a Collection:
Set public Set<K> keySet();
Collection public Collection<V> values();
Conjunto con los pares clave-valor public Set<[Link]<K,V> > entrySet();
Pasar Values de un Map a Array (toArray):
“Tipo” [] arrayEfectos = [Link]().toArray(new “tipo”[0]);
//Guarda cada Value del mapa en un array de tamaño [0] que va aumentando
Extras
@Override
Cuando Java compara en estructuras hash primero invoca a hashcode y luego a equals.
En el caso en el que ambos objetos compartan el mismo hashcode Java invocará al método
equals y revisará a detalle si se cumple la igualdad.
- hashCode
Si los hashcode de cada objeto son diferentes no seguirá comparando.
public int hashCode () //El hashCode tiene que ser un identificador único
{
int hash;
hash = “lo que queramos que sea el hash”
return hash;
}
- equals
Método que se usa para comparar objetos
public boolean equals (Object e) //Compara el objeto que lo invoca con
el que se pasa como parámetro
{
“Tipo” comparar = (“Tipo”) e; //Cast para indicar que el objeto es
del tipo que le indicamos
if ((e != null) && (e instanceof “Tipo”))
{
if (//variables de los objetos a comparar)
return true;
else
return false;
}
else
return false;
}