Professional Documents
Culture Documents
Metodologia i Programaci
Orientada a Objectes (MPOO)
ndice
Objetivo
Conjuntos
Listas
Diccionarios
Objetivo
Trabajar con secuencias de objetos o tipos
bsicos
Secuencia en POO
Coleccin de objetos
Orden de los objetos en la secuencia
Recorrido lineal
Formada por datos (objetos) y mtodos (operaciones
para gestionar los datos)
Secuencia en POO
Datos:
Objetos o tipos bsicos
Mtodos:
Crear secuencia
Insertar elemento (al final o en una posicin
determinada)
Eliminar elemento(s) (del final o en una posicin
determinada)
Obtener elemento (sin eliminarlo) de una determinada
posicin
Vectores
Limitaciones:
Cuando los creamos hemos de determinar el tamao
Podemos desperdiciar mucha memoria
Tamao fijo
Gestionar sus elementos es complejo
Sintaxis:
Crear: Vector nomVector = new Vector(tam);
Acceso elementos: nomVector[pos]
Vectores Ejemplo
Vector complejos=new Vector(10);
c1=new Complex(1.0, 2.0);
c2=new Complex(2.0, 3.0);
complejos[0]=c1;
complejos[2]=c2;
1.0
2.0
2.0
3.0
Colecciones de objetos
En Java se han definido las colecciones de objetos
para trabajar con secuencias de objetos
Proporcionan los mtodos bsicos para:
Buscar, insertar, borrar, etc.
Colecciones de objetos
Conjuntos: Colecciones de objetos no
ordenadas
Listas: Colecciones de objetos ordenadas
Mapas o diccionarios: Colecciones de
objetos a los que se accede mediante una
clave
Colecciones de objetos
Colecciones (Java)
Objetos
Interfaces
Collection
List
Set
Map
Map
Interactuan con
Iterator
Enumerator
de Referencian
Grupo
Cast
Acceder
Elementos
Conjuntos
Conjuntos
Clases Java: HashSet, TreeSet, SortedSet, LinkedHashSet
Se diferencian en su estructura interna, pero se usan exactamente
igual (mismos mtodos)
Package java.util
API Java:
http://download.oracle.com/javase/6/docs/api/java/util/Set.
html
Sintaxis:
HashSet<TipoDatos> nomConjunto = new
HashSet<TipoDatos>();
TreeSet<TipoDatos> nomConjunto = new
TreeSet<TipoDatos>();
Si no se especifica el tipo datos podr contener cualquiera
Conjuntos Mtodos
add(objeto): aade el objeto especificado al conjunto si
ste no existe
remove(objeto): elimina el objeto especificado del
conjunto si est presenta
clear(): elimina todos los elementos del conjunto
contains(objeto): devuelve true si el conjunto
contiene el objeto especificado
size(): devuelve el nmero de objetos del conjunto
iterator(): devuelve un iterador sobre los elementos del
conjunto
API Java:
http://download.oracle.com/javase/6/docs/api/java/util/Set.html
Conjuntos - Ejemplos
HashSet<String> conjunto1 = new HashSet<String>();
conjunto1.add(Elemento1);
conjunto1.add(Elemento2);
TreeSet<Complex> conjunto2 = new
TreeSet<Complex>();
conjunto2.add(new Complex(1,1));
Iteradores
Objetos que recorren todos los elementos de un
conjunto (o lista)
Mediante un iterador podremos acceder a todos
los elementos de un conjunto (o lista)
Package: java.util
Mtodos:
hasNext(): Devuelve true si el iterador tiene ms
elementos
next(): Devuelve el siguiente elemento del iterador
API Java:
http://docs.oracle.com/javase/1.4.2/docs/api/java/util/It
erator.html
Iteradores
Se utilizan para recorrer un conjunto:
HashSet<TipoDatos> conjunto = new
HashSet<TipoDatos>();
...
Iterator<TipoDatos> it =
conjunto.iterator();
while(it.hasNext()) {
TipoDatos elemento = it.next();
...
}
Ejercicio:
1. Implementar la clase Album
2. Pedir al usuario que cree un nuevo album, para ello introducir el
nombre del lbum y la informacin de las canciones que quiera aadir
3. Mostrar por pantalla toda la informacin del lbum creado por el
usuario
Listas
Coleccin de objetos que permite guardar los
elementos en un orden determinado
No tienen un tamao fijo
Se redimiensionan dinmicamente
Se accede a los elementos a travs de un
ndice (indica su posicin en la lista)
Podemos aadir, obtener y eliminar
elementos de cualquier posicin
Listas
Clases Java:
ArrayList, LinkedList
API Java:
http://docs.oracle.com/javase/6/docs/api/java/
util/List.html
Sintaxis:
ArrayList<TipoDatos> nomLista =new
ArrayList<TipoDatos>();
LinkedList<TipoDatos> nomLista =new
LinkedList<TipoDatos>();
Listas Mtodos
get(posicion): devuelve el objeto que est en la posicin
especificada
contains(objeto): devuelve true si el objeto que se pasa
como parmetro est en la lista
add(objeto): aade el objeto al final de la lista
add(posicion,objeto): aade el objeto en la posicin
especificada
remove(objeto): elimina el objeto especificado de la lista
remove(posicin): elimina de la lista el objeto que se
encuentra en la posicin especificada
clear(): elimina todos los elementos de la lista
API Java:
http://download.oracle.com/javase/6/docs/api/java/util/List.html
Listas Ejemplo
ArrayList<String> li =new
ArrayList<String>();
//Aadimos elementos
li.add(Elemento 1);
li.add(Elemento 2);
li.add(0, Elemento 0);
//Obtener elemento posicin 1
String text=li.get(1);
//Eliminar elemento posicin 0
li.remove(0);
Ejercicio:
Modificar la case Factura para que soporte varias lneas de tratamiento
mediante una lista. Implementar el constructor y los mtodos:
public void anyadeLinea(LineaTratamiento l, int pos)
public float calculaImporteFactura()
public String toString()
Crear una factura que contenga dos tratamientos diferentes y mostrar por
pantalla el importe total de la factura, as como los datos que contiene
Mapas
Colecciones de objetos a los que se accede mediante
una clave nica
En vez de un ndice numrico
Claves
Valores
key1
val1
key2
val2
...
...
keyN
valN
Mapas
Cuando se declara una instancia de una de las
clases que implementan la interificie Map
Indica el tipo de la clave y valor
Entre <y>
Sintaxis:
HashMap<tipoClave,TipoDatos> nomMapa=new
HashMap<tipoClave,TipoDatos>();
Mapas
Clases Java:
HashMap, TreeMap, HashTable,
Properties
Java API:
http://docs.oracle.com/javase/6/docs/api/jav
a/util/Map.html
Sintaxis
HashMap<tipoClave,TipoDatos> nomMapa=new
HashMap<tipoClave,TipoDatos>();
TreeMap<tipoClave,TipoDatos> nomMapa=new
TreeMap<tipoClave,TipoDatos>();
Mapas Mtodos
API Java:
http://download.oracle.com/javase/6/docs/api/java/util/Map
.html
get(clave): devuelve el objeto correspondiente a la clave que
se le pasa como parmetro
keySet(): devuelve un conjunto (Set) con las claves del mapa
size(): devuelve el nmero de pares clave/valor en el mapa
put(clave,objeto): guarda el par clave, objeto. El objeto ser
accesible mediante la clave especificada
remove(clave): borra el objeto que est guardado segn la
clave especificada
Mapas Ejemplo
Alumnos de asignatura a los que queremos acceder a travs de su
DNI:
HashMap<String,Alumno> alumnos
= new HashMap<String,Alumno>();
alumnos.put(12879546L, new Alumno(Ana Casas));
alumnos.put(76983678P, new Persona(Nuria Salas));
alumnos.put(19891128K, new Persona(Ignacio Caso));
Alumno a = alumnos.get(2879546L);