Colecciones Java PDF
Colecciones Java PDF
Colecciones Java PDF
! La interfaz java.util.Iterator se usa para ! La comparacin entre objetos Java se realiza con el operador
recorrer las colecciones posicionales == y el mtodo equals. Java utiliza el primero para comparar
igualdad de referencia (dos variables apuntan al mismo objeto
Interface Iterator { fsico) y el segundo para igualdad de contenidos.
boolean hasNext();
Object next(); ! La clase java.lang.Object define un mtodo equals por
void remove(); defecto que utiliza la igualdad de referencia. Si queremos
} implementar la igualdad de contenidos en los objetos de
nuestras clases, hay que sobreescribir este mtodo.
! Ejemplo
Interator it = puntos.iterator(); ! El mtodo hashCode tambin se define en la superclase
while (it.hasNext()) { Object y devuelve un int que define la clave hash de un
Point2D p = (Point2D) it.next(); objeto. Debe ser compatible con equals (si equals devuelve
canvas.draw(p); true, hashCode debe devolver el mismo int para dos
} objetos).
Qu contiene un framework de
Colecciones en Java
colecciones?
! Interfaces ! Arrays
" TADs que definen la funcionalidad " La clase ms sencilla, est fuera del framework collection
! Implementaciones ! Iterator
" Clases que implementan las interfaces de las colecciones " Iterator
" Un TAD (por ejemplo Secuencia o Lista) puede tener ms de
una implementacin ! Colecciones
" Collection
! Algoritmos " Set
" mtodos que realizan computaciones, como bsquedas u " List
ordenaciones, sobre objetos que implementan las interfaces
" Map
! Los Arrays son el tipo ms sencillo de coleccin ! Las colecciones se definen por la siguiente jerarqua de
interfaces
Point2D[] puntos;
puntos = new Point2D [100];
for (int i=0; i <= puntos.length(); i++)
puntos[i]= new Point2D();
import java.util.*;
public class MyStack { public interface ListIterator extends Iterator {
private LinkedList list = new LinkedList(); boolean hasNext();
public void push(Object o){ Object next();
list.addFirst(o);
} boolean hasPrevious();
public Object top(){ Object previous();
return list.getFirst();
} int nextIndex();
public Object pop(){ int previousIndex();
return list.removeFirst();
} void remove(); // Optional
void set(Object o); // Optional
public static void main(String args[]) { void add(Object o); // Optional
Point2D punto; }
MyStack s = new MyStack();
s.push (new Point2D());
punto = (Point2D)s.pop();
}
}
! Un Map (correspondencia) es un objeto que asocia una clave a public interface Map {
// Basic Operations
un valor. Tambin se denomina Diccionario. Object put(Object key, Object value);
Object get(Object key);
Object remove(Object key);
! Mtodos para aadir y borrar: boolean containsKey(Object key);
boolean containsValue(Object value);
" put(Object key, Object value) int size();
boolean isEmpty();
" remove(Object key)
// Bulk Operations
! Mtodos para la extraccin de objetos void putAll(Map t);
void clear();
" get(Object key)
// Collection Views
! Mtodos para obtener las claves, los valores y las parejas (clave, public Set keySet();
public Collection values();
valor) como un conjunto public Set entrySet();