SlideShare una empresa de Scribd logo
1 de 26
Descargar para leer sin conexión
Prof. Renny Batista Programación IIIOctubre, 2015
Colecciones en Java
Colecciones
Es un objeto que almacena un conjunto de referencias a otros objetos, dicho
de otra manera es una especie de arreglo (array) de objetos.
Las colecciones son dinámicas, no tienen un tamaño fijo y permiten añadir y
eliminar objetos en tiempo de ejecución.
Java incluye en el paquete java.util un diverso conjunto de clases para la
creación y manejo de las colecciones. Todas ellas proporcionan una serie de
métodos para realizar operaciones básicas sobre una colección:
Añadir objetos a la colección
Eliminar objetos de la colección
Obtener un objeto
Localizar algún objeto de la colección
Iterar a través de la colección
Colecciones – La interfaz Collection
La interfaz Collection es la interfaz raíz en la jerarquía de colecciones, a
partir de la cual se derivan las interfaces Set y List. La interfaz Collection
contiene operaciones masivas para agregar, borrar, comparar y retener
objetos en una colección.
La interfaz Collection proporciona un método llamado iterator para
obtener un objeto Iterator.
La clase Collections proporciona métodos static para manipular
colecciones. Muchos de los métodos son implementaciones de algoritmos
polimórficos para buscar, ordenar, etcétera.
Colecciones – La interfaz Collection
Katy Sierra, Bert Bates - SCJP 6 Study Guide
Diagrama de decisión para el uso de colecciones
http://www.adictosaltrabajo.com/tutoriales/introduccion-a-colecciones-en-java/
Colecciones de tipo genéricos
El uso de colecciones basadas en tipos genéricos proporciona un mecanismo
que permite notificar al compilador el tipo de objeto que va a ser
almacenado en la colección.
Cualquier instrucción que intente almacenar en la colección un objeto de un
tipo que no sea el especificado provocará un error de compilación.
Dado que se conoce el tipo de objeto almacenado en la colección, no será
necesario realizar una conversión explícita (casting) durante su recuperación.
El tipo especificado durante la utilización de las colecciones genéricas
solamente pueden ser de tipo objeto, no siendo posible utilizar tipos básicos
(primitivos) de Java.
ArrayList
Un ArrayList representa una colección basada en índices, en la que cada
objeto de la misma tiene asociado un número (índice) según la posición que
ocupa dentro de la colección, siendo 0 la posición del primer elemento.
ArrayList
Clase Persona
0
1
2
n
Índices Class Persona{
private String id;
private String nombre;
private int edad;
}
001 Pedro 34
002 María 25
003 Luis 30
Objetos
Creación de un ArrayList
Para crear un ArrayList utilizamos la expresión:
ArrayList <tipo_objeto> variable = new ArrayList <tipo_objeto>();
Ejemplo:
//ArrayList de tipo cadena
ArrayList<String> arraylist=new ArrayList<String>();
//ArrayList de objetos del tipo Persona
ArrayList<Persona> arraylist=new ArrayList<Persona>();
Creación de un ArrayList
Ejemplo:
//Se crea una clase llamada Estudiante
public class Estudiante {
String id;
String nombre;
int edad;
Estudiante(String id,String nombre,int edad){
this.id = id;
this.nombre = nombre;
this.edad=edad;
}
}
Creación de un ArrayList - Ejemplo
import java.util.*;
public class EjemploColeccion {
public static void main(String args[]){
Estudiante estudiante1=new Estudiante("001","Pedro",35);
Estudiante estudiante2=new Estudiante("002","Maria",24);
Estudiante estudiante3=new Estudiante("003","Luis",28);
ArrayList<Estudiante> arraylist=new ArrayList<Estudiante>();
arraylist.add(estudiante1);
arraylist.add(estudiante2);
arraylist.add(estudiante3);
Iterator<Estudiante> itr=arraylist.iterator();
while(itr.hasNext()){
Estudiante estudiante=(Estudiante)itr.next();
System.out.println(estudiante.id+"t"+estudiante.nombre+"t"+estudiante.edad);
}
}
}
Crea el ArrayList de
objetos Estudiante
Instanciando objetos de la
clase Estudiante
Agregamos los objetos al
ArrayList (método add)
Se crea un objeto del tipo
Iterator
Recorremos el ArrayList
Algunos métodos de la clase ArrayList
add(Object objeto) añade un nuevo objeto a la colección.
add(int indice, Object objeto) añade un objeto a la colección en la
posición especificada por el índice, desplazando el resto de los elementos.
get(int indice) devuelve el objeto que ocupa la posición indicada.
remove(int indice) elimina de la colección el objeto que ocupa la
posición indicada.
clear() elimina todos los objetos de la colección.
indexOf(Object objeto) localiza en el ArrayList el objeto indicado cómo
parámetro, devolviendo su posición. En caso de que el objeto no se
encuentre en la colección la invocación al método devolverá -1.
size() devuelve el número de elementos almacenados en la colección.
Hashtable
Un Hashtable representa una colección basada en claves, dónde los objetos
almacenados en la misma (valores) no tienen asociado un índice numérico
basado en su posición, sino una clave que lo identifica de forma única dentro
de la colección. Una clave puede ser cualquier tipo de objeto.
Hashtable
Clase Persona
001
002
003
Objn
Claves
Objectos Class Persona{
private String id;
private String nombre;
private int edad;
private char sexo;
}
Pedro 34 ‘M’
María 25 ‘F’
Luis 30 ‘M’
Valor
Objetos
Hashtable
El uso de colecciones basadas en claves resulta útil en aquellas aplicaciones en
las que se requiera realizar búsquedas de objetos a partir de un dato que lo
identifica.
Por ejemplo, si se va a tratar una colección de objetos de tipo “Persona”,
resulta más practico almacenarlo en un hashtable, asociando como clave el
valor de atributo “Id” o “Código” del objeto Persona.
Creación de un objeto Hashtable:
//Declaración simple
Hashtable variable_hash = new Hashtable<>();
//Declaración tipos genericos
Hashtable<Obj, Obj> variable_hash = new Hashtable<Obj, Obj>();
Tipo de Objeto
(Valor)
Tipo de Objeto
(Clave)
Algunos métodos de la clase Hashtable
put(Object key, Object valor) añade a la colección el objeto valor,
asignándole la clave especificada por key. En caso de existir esa clave en la
colección, el objeto que tenía asignado esa clave se sustituye por el nuevo
objeto valor, devolviendo el objeto sustituido.
containsKey(Object key) indica si la clave especificada existe o no en la
colección.
get(Object key) devuelve el valor que tiene asociado la clave que se
indica en el parámetro.
remove(Object key) elimina de la colección el objeto cuya clave se
especifique en el parámero.
size() devuelve el número de elementos almacenados en la colección.
Enumeration keys() devuelve un objeto enumeration que permite iterar
sobre el conjunto de claves.
Ejemplo de Hashtable
//Creamos una clase llamada Estudiante
public class Estudiante {
//Atributos
private String id; private String nombre; private int edad;
Estudiante(String id,String nombre,int edad){
this.id = id;
this.nombre = nombre;
this.edad=edad;
}
//Metodos getters
public String getId() {
return id;
}
public String getNombre() {
return nombre;
}
public int getEdad() {
return edad;
}
}
Ejemplo de Hashtable
import java.util.*;
public class EjemploColeccion {
public static void main(String args[]){
//Creando objetos de la clase Estudiante
Estudiante estudiante1=new Estudiante("001","Pedro",35);
Estudiante estudiante2=new Estudiante("002","Maria",24);
Estudiante estudiante3=new Estudiante("003","Luis",28);
Hashtable<String, Estudiante> tablahash = new Hashtable<String,Estudiante>();
tablahash.put(estudiante1.getId(), estudiante1);
tablahash.put(estudiante2.getId(), estudiante2);
tablahash.put(estudiante3.getId(), estudiante3);
System.out.println(tablahash.get("002").getNombre());
System.out.println(tablahash.get("003").getNombre());
}
Se crea la tabla con key de tipo String,
y objetos del tipo Estudiante
Agregamos los objetos a la
tabla hash. Como clave el Id
del Estudiante y el objeto
Estudiante.
Con los métodos getters de Estudiantes se puede
ver al contenido del objeto
Iteración de un Hashtable: Interfaz Enumeration
Como un Hashtable no está basado en índices, no puede ser recorrido
utilizando una sentencia for. Para recorrer (iterar) sobre un Hashtable se
puede hacer uso del objeto enumeration.
Enumeration es un objeto que implementa la interfaz
java.util.Enumeration.
Los métodos de esta interfaz permiten recorrer una colección de objetos
asociada y acceder a ella.
Un objeto Enumeration lo podemos imaginar como una especie de
puntero o referencia, que puede ir apuntando a cada uno de los
elementos de la colección.
Metodos de la Interfaz Enumeration
nextElement() La llamada de este método sobre un objeto Enumeration
provoca que este pase a apuntar al siguiente objeto de la colección.
Inicialmente, un enumeration se encuentra apuntando a la posición que
está antes del primer objeto de la colección, por lo que la primera llamada
a este método devolverá el primer objeto.
hasMoreElements() indica si hay más elementos por recorrer en la
colección. Cuando el objeto enumeration este apuntando al último
elemento, la llamada a este método devolverá false.
Metodos de la Interfaz Enumeration
//Creamos la tabla hash
Hashtable<String, Estudiante> tablahash = new Hashtable<String,Estudiante>();
//Agregamos los objetos a la tabla
tablahash.put(estudiante1.getId(), estudiante1);
tablahash.put(estudiante2.getId(), estudiante2);
tablahash.put(estudiante3.getId(), estudiante3);
Enumeration<Estudiante> enumeration = tablahash.elements();
while (enumeration.hasMoreElements()) {
System.out.println("Estudiantes: "+enumeration.nextElement().getNombre());
}
Apuntamos al siguiente elemento de la tabla y
obtenemos el nombre de cada Estudiante
Se crea una instancia de la clase
Enumeration de tipo Estudiante
Se recorre la tablahash con el
objeto enumeration
Metodos de la Interfaz Enumeration
Si queremos saber cuales son las claves de un HashTable usamos el método
keys().
Enumeration<String> claves = tablahash.keys();
while (claves.hasMoreElements()) {
System.out.println(""+"hashtable claves: " + claves.nextElement());
}
También se puede obtener la enumeración de todas las claves mediante el
uso del método keys().
System.out.println("Claves: " +tablahash.keys());
La clase Vector
La clase Vector, al igual que ArrayList o LinkedList, también implementa
a List, pero de un modo especial. Este modo especial es sincronizado, lo
que permite que se pueda usar en entornos concurrentes (es decir, en
varios procesos que se ejecutan al mismo tiempo y hacen uso posiblemente
de los mismos recursos). Esta además es la principal característica que la
diferencia de otras clases presentadas anteriormente como ArrayList.
Se recomienda que si no es necesario se use ArrayList en vez de Vector.
Por tanto, solo utilizaremos la clase Vector si tenemos previstas
circunstancias especiales como procesos concurrentes.
Un objeto de tipo Vector contiene elementos que pueden ser accedidos por
un índice y puede aumentar o disminuir su tamaño dinámicamente en
tiempo de ejecución.
La clase Vector
Creación de un objeto vector:
Vector variable_vector = new Vector();
Vector<Objeto> variable_vector = new Vector<Objeto>();
Algunos métodos de la clase Vector:
addElement(Objeto) se añade un objeto al vector.
elementAt(int i) Devuelve el elemento en la posición indicada por i.
indexOf(Object elemento) Devuelve el índice de la primera aparición de elemento.
Si el objeto no está en el vector devuelve –1.
size( ) Devuelve el número de elementos en el vector.
La clase Vector
Algunos métodos de la clase Vector:
isEmpty() Devuelve true si el vector está vacío y false si contiene uno o más
elementos.
lastElement() Devuelve el último elemento del vector.
removeAllElements( ) Vacía el vector. Tras ejecutarse este método, el tamaño del
vector es cero.
removeElement(Object) Quita elemento del vector. Si existe en el vector más de una
instancia del objeto especificado, entonces se quita la primera. Devuelve true si se
hizo con éxito y false si el objeto no se encontró.
removeElementAt(int indice) Quita el elemento en la posición indicada por índice.
Ejemplo de la clase Vector
Creamos una clase “Persona”
public class Persona {
public int idPersona;
public String nombre;
public double altura;
public Persona(int idPersona, String nombre, double altura) {
this.idPersona = idPersona;
this.nombre = nombre;
this.altura = altura;
}
@Override
public String toString() {
return "Persona-> ID: "+idPersona+" Nombre: "+nombre+" Altura:
"+altura+"n";
}
}
Se sobrescribe el método toString para poder
mostrar los valores almacenados en los atributos
Ejemplo de la clase Vector
import java.util.Vector;
public class EjemploColeccion {
public static void main(String args[]){
Vector<Persona> vector = new Vector<Persona>();
int i = 1;
while (i<=5) {
vector.add(new Persona(i,"Persona_"+i,i+150));
i++;
}
for (Persona persona : vector) {
System.out.print(persona.toString());
}
}
}
Se crea un Vector del
tipo Persona
Persona-> ID: 1 Nombre: Persona_1 Altura: 151.0
Persona-> ID: 2 Nombre: Persona_2 Altura: 152.0
Persona-> ID: 3 Nombre: Persona_3 Altura: 153.0
Persona-> ID: 4 Nombre: Persona_4 Altura: 154.0
Persona-> ID: 5 Nombre: Persona_5 Altura: 155.0
Bibliografías
Martín, Antonio. Programador Certificado Java 2. Curso Práctico. Editorial
RA-MA. 2da Edición.
Joyanes L., Zahonero I. Programación en Java 6. Algoritmos, programación
orientada a objetos e interfaz gráfica de usuarios. McGRAW-HILL
INTERAMERICANA EDITORES, S.A. DE C.V. 1ra Edición.
Schildt H. Java Manual de referencia. McGRAW-HILL INTERAMERICANA
EDITORES, S.A. DE C.V. 7ma Edición

Más contenido relacionado

La actualidad más candente

Arreglos Unidimensionales - Java - NetBeans
Arreglos Unidimensionales - Java - NetBeansArreglos Unidimensionales - Java - NetBeans
Arreglos Unidimensionales - Java - NetBeansDaniel Gómez
 
POO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y PolimorfismoPOO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y PolimorfismoActimel
 
Programación 3: clases derivadas y polimorfismo
Programación 3: clases derivadas y polimorfismoProgramación 3: clases derivadas y polimorfismo
Programación 3: clases derivadas y polimorfismoAngel Vázquez Patiño
 
Tutorial JPA Parte 1 : CRUD BASICO CON JPA Y SWING en NETBEANS
Tutorial  JPA Parte 1  : CRUD BASICO CON JPA Y SWING en NETBEANSTutorial  JPA Parte 1  : CRUD BASICO CON JPA Y SWING en NETBEANS
Tutorial JPA Parte 1 : CRUD BASICO CON JPA Y SWING en NETBEANSWilliam Diaz S
 
8b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 18b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 1Clara Patricia Avella Ibañez
 
Interfaz gráfica de usuario y eventos (introducción)
Interfaz gráfica de usuario y eventos (introducción)Interfaz gráfica de usuario y eventos (introducción)
Interfaz gráfica de usuario y eventos (introducción)Omar B.
 
Diagramas de objetos
Diagramas de objetosDiagramas de objetos
Diagramas de objetosstill01
 
ENTRADA Y SALIDA DE DATOS EN JAVA
ENTRADA Y SALIDA DE DATOS EN JAVAENTRADA Y SALIDA DE DATOS EN JAVA
ENTRADA Y SALIDA DE DATOS EN JAVAGabriel Suarez
 
polimorfismo
polimorfismopolimorfismo
polimorfismomiguel a
 
Colas en programacion
Colas en programacionColas en programacion
Colas en programacionLuis Igoodbad
 
Elementos de diagramas de objetos
Elementos de diagramas de objetosElementos de diagramas de objetos
Elementos de diagramas de objetosJorge Reyes
 
File reader y filewriter
File reader y filewriterFile reader y filewriter
File reader y filewriterSynysterA7X
 

La actualidad más candente (20)

Arreglos Unidimensionales - Java - NetBeans
Arreglos Unidimensionales - Java - NetBeansArreglos Unidimensionales - Java - NetBeans
Arreglos Unidimensionales - Java - NetBeans
 
Conceptos poo (presentación1)
Conceptos poo (presentación1)Conceptos poo (presentación1)
Conceptos poo (presentación1)
 
POO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y PolimorfismoPOO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y Polimorfismo
 
Listas doblemente enlazadas
Listas doblemente enlazadasListas doblemente enlazadas
Listas doblemente enlazadas
 
Recursividad
RecursividadRecursividad
Recursividad
 
Programación 3: clases derivadas y polimorfismo
Programación 3: clases derivadas y polimorfismoProgramación 3: clases derivadas y polimorfismo
Programación 3: clases derivadas y polimorfismo
 
Pilas En C++
Pilas En C++Pilas En C++
Pilas En C++
 
Tutorial JPA Parte 1 : CRUD BASICO CON JPA Y SWING en NETBEANS
Tutorial  JPA Parte 1  : CRUD BASICO CON JPA Y SWING en NETBEANSTutorial  JPA Parte 1  : CRUD BASICO CON JPA Y SWING en NETBEANS
Tutorial JPA Parte 1 : CRUD BASICO CON JPA Y SWING en NETBEANS
 
8b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 18b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 1
 
Interfaz gráfica de usuario y eventos (introducción)
Interfaz gráfica de usuario y eventos (introducción)Interfaz gráfica de usuario y eventos (introducción)
Interfaz gráfica de usuario y eventos (introducción)
 
Clases y objetos en Java
Clases y objetos en JavaClases y objetos en Java
Clases y objetos en Java
 
Estructura datos pilas y colas
Estructura datos pilas y colasEstructura datos pilas y colas
Estructura datos pilas y colas
 
Pilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datosPilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datos
 
Diagramas de objetos
Diagramas de objetosDiagramas de objetos
Diagramas de objetos
 
ENTRADA Y SALIDA DE DATOS EN JAVA
ENTRADA Y SALIDA DE DATOS EN JAVAENTRADA Y SALIDA DE DATOS EN JAVA
ENTRADA Y SALIDA DE DATOS EN JAVA
 
polimorfismo
polimorfismopolimorfismo
polimorfismo
 
Colas en programacion
Colas en programacionColas en programacion
Colas en programacion
 
Elementos de diagramas de objetos
Elementos de diagramas de objetosElementos de diagramas de objetos
Elementos de diagramas de objetos
 
Flujo datos
Flujo datosFlujo datos
Flujo datos
 
File reader y filewriter
File reader y filewriterFile reader y filewriter
File reader y filewriter
 

Similar a Java colecciones

2 2 2 Arraylist Y Operadores
2 2 2 Arraylist Y Operadores2 2 2 Arraylist Y Operadores
2 2 2 Arraylist Y OperadoresUVM
 
Colecciones en java
Colecciones en javaColecciones en java
Colecciones en javajent46
 
Colecciones en Java
Colecciones en JavaColecciones en Java
Colecciones en JavaRonny Parra
 
Tema 6 colecciones por gio
Tema 6   colecciones por gioTema 6   colecciones por gio
Tema 6 colecciones por gioRobert Wolf
 
Iteradores, Listas y Conjuntos en Java
Iteradores, Listas y Conjuntos en JavaIteradores, Listas y Conjuntos en Java
Iteradores, Listas y Conjuntos en JavaGaby Delgado
 
Jyoc java-cap11 colecciones
Jyoc java-cap11 coleccionesJyoc java-cap11 colecciones
Jyoc java-cap11 coleccionesJyoc X
 
Programación 3: Vector, stack, enumearator, iterator, listiterator en Java
Programación 3: Vector, stack, enumearator, iterator, listiterator en JavaProgramación 3: Vector, stack, enumearator, iterator, listiterator en Java
Programación 3: Vector, stack, enumearator, iterator, listiterator en JavaAngel Vázquez Patiño
 
Colecciones en java
Colecciones en javaColecciones en java
Colecciones en javaMaîck Ddz
 
Declaración y creación de un arraylist
Declaración y creación de un arraylistDeclaración y creación de un arraylist
Declaración y creación de un arraylistRobert Wolf
 
Mapas y Diccionarios - Colecciones Parametrizadas
Mapas y Diccionarios - Colecciones ParametrizadasMapas y Diccionarios - Colecciones Parametrizadas
Mapas y Diccionarios - Colecciones ParametrizadasChristian Collaguazo Malla
 
Programación 3: listas y conjuntos en java
Programación 3: listas y conjuntos en javaProgramación 3: listas y conjuntos en java
Programación 3: listas y conjuntos en javaAngel Vázquez Patiño
 
Poo 4 arraylist
Poo 4 arraylistPoo 4 arraylist
Poo 4 arraylistjlmanmons
 
javadesdecerocolecciones-140914051359-phpapp01.pptx
javadesdecerocolecciones-140914051359-phpapp01.pptxjavadesdecerocolecciones-140914051359-phpapp01.pptx
javadesdecerocolecciones-140914051359-phpapp01.pptxCompusoftnetCiaLtda
 
Poo Java
Poo JavaPoo Java
Poo Javaeccutpl
 

Similar a Java colecciones (20)

2 2 2 Arraylist Y Operadores
2 2 2 Arraylist Y Operadores2 2 2 Arraylist Y Operadores
2 2 2 Arraylist Y Operadores
 
Colecciones en java
Colecciones en javaColecciones en java
Colecciones en java
 
Colecciones en Java
Colecciones en JavaColecciones en Java
Colecciones en Java
 
colecciones en java
colecciones en javacolecciones en java
colecciones en java
 
Tema 6 colecciones por gio
Tema 6   colecciones por gioTema 6   colecciones por gio
Tema 6 colecciones por gio
 
Iteradores, Listas y Conjuntos en Java
Iteradores, Listas y Conjuntos en JavaIteradores, Listas y Conjuntos en Java
Iteradores, Listas y Conjuntos en Java
 
Jyoc java-cap11 colecciones
Jyoc java-cap11 coleccionesJyoc java-cap11 colecciones
Jyoc java-cap11 colecciones
 
Programación 3: Vector, stack, enumearator, iterator, listiterator en Java
Programación 3: Vector, stack, enumearator, iterator, listiterator en JavaProgramación 3: Vector, stack, enumearator, iterator, listiterator en Java
Programación 3: Vector, stack, enumearator, iterator, listiterator en Java
 
Colecciones en java
Colecciones en javaColecciones en java
Colecciones en java
 
Declaración y creación de un arraylist
Declaración y creación de un arraylistDeclaración y creación de un arraylist
Declaración y creación de un arraylist
 
Array List
Array ListArray List
Array List
 
Arraylist
ArraylistArraylist
Arraylist
 
Mapas y Diccionarios - Colecciones Parametrizadas
Mapas y Diccionarios - Colecciones ParametrizadasMapas y Diccionarios - Colecciones Parametrizadas
Mapas y Diccionarios - Colecciones Parametrizadas
 
Programación 3: listas y conjuntos en java
Programación 3: listas y conjuntos en javaProgramación 3: listas y conjuntos en java
Programación 3: listas y conjuntos en java
 
Array listlistas
Array listlistasArray listlistas
Array listlistas
 
Colecciones
ColeccionesColecciones
Colecciones
 
Poo 4 arraylist
Poo 4 arraylistPoo 4 arraylist
Poo 4 arraylist
 
4_colecciones.ppt
4_colecciones.ppt4_colecciones.ppt
4_colecciones.ppt
 
javadesdecerocolecciones-140914051359-phpapp01.pptx
javadesdecerocolecciones-140914051359-phpapp01.pptxjavadesdecerocolecciones-140914051359-phpapp01.pptx
javadesdecerocolecciones-140914051359-phpapp01.pptx
 
Poo Java
Poo JavaPoo Java
Poo Java
 

Más de Renny Batista

Diseño adaptativo y responsive
Diseño adaptativo y responsiveDiseño adaptativo y responsive
Diseño adaptativo y responsiveRenny Batista
 
Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015Renny Batista
 
Java - Sintaxis Básica 2015
Java - Sintaxis Básica 2015Java - Sintaxis Básica 2015
Java - Sintaxis Básica 2015Renny Batista
 
Html Tema 4 - Formularios
Html Tema 4 - FormulariosHtml Tema 4 - Formularios
Html Tema 4 - FormulariosRenny Batista
 
Html - Tema 2: Enlaces, Imágenes y Listas
Html - Tema 2: Enlaces, Imágenes y ListasHtml - Tema 2: Enlaces, Imágenes y Listas
Html - Tema 2: Enlaces, Imágenes y ListasRenny Batista
 
Modelos de desarrollo del software
Modelos de desarrollo del softwareModelos de desarrollo del software
Modelos de desarrollo del softwareRenny Batista
 
Fundamentos de Sistema- >Tema II
Fundamentos de Sistema- >Tema IIFundamentos de Sistema- >Tema II
Fundamentos de Sistema- >Tema IIRenny Batista
 
Diagramas de Flujos de Datos
Diagramas de Flujos de DatosDiagramas de Flujos de Datos
Diagramas de Flujos de DatosRenny Batista
 
Introduccion al java script
Introduccion al java scriptIntroduccion al java script
Introduccion al java scriptRenny Batista
 
Introducción a la programación orientada objetos
Introducción a la programación orientada objetosIntroducción a la programación orientada objetos
Introducción a la programación orientada objetosRenny Batista
 

Más de Renny Batista (18)

Diseño adaptativo y responsive
Diseño adaptativo y responsiveDiseño adaptativo y responsive
Diseño adaptativo y responsive
 
05 java excepciones
05 java excepciones05 java excepciones
05 java excepciones
 
03 java poo_parte_2
03 java poo_parte_203 java poo_parte_2
03 java poo_parte_2
 
Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015
 
Java - Sintaxis Básica 2015
Java - Sintaxis Básica 2015Java - Sintaxis Básica 2015
Java - Sintaxis Básica 2015
 
JQuery-Tema 1
JQuery-Tema 1JQuery-Tema 1
JQuery-Tema 1
 
Css - Tema 2
Css -  Tema 2Css -  Tema 2
Css - Tema 2
 
Css - Tema 1
Css - Tema 1Css - Tema 1
Css - Tema 1
 
Html Tema 4 - Formularios
Html Tema 4 - FormulariosHtml Tema 4 - Formularios
Html Tema 4 - Formularios
 
Html - Tema 3
Html - Tema 3Html - Tema 3
Html - Tema 3
 
Html - Tema 2: Enlaces, Imágenes y Listas
Html - Tema 2: Enlaces, Imágenes y ListasHtml - Tema 2: Enlaces, Imágenes y Listas
Html - Tema 2: Enlaces, Imágenes y Listas
 
Html - Tema 1
Html - Tema 1Html - Tema 1
Html - Tema 1
 
Modelos de desarrollo del software
Modelos de desarrollo del softwareModelos de desarrollo del software
Modelos de desarrollo del software
 
Fundamentos de Sistema- >Tema II
Fundamentos de Sistema- >Tema IIFundamentos de Sistema- >Tema II
Fundamentos de Sistema- >Tema II
 
Diagramas de Flujos de Datos
Diagramas de Flujos de DatosDiagramas de Flujos de Datos
Diagramas de Flujos de Datos
 
Introduccion al java script
Introduccion al java scriptIntroduccion al java script
Introduccion al java script
 
Introducción a la programación orientada objetos
Introducción a la programación orientada objetosIntroducción a la programación orientada objetos
Introducción a la programación orientada objetos
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
 

Último

Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Alejandrino Halire Ccahuana
 
Criterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosCriterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosJonathanCovena1
 
plan de capacitacion docente AIP 2024 clllll.pdf
plan de capacitacion docente  AIP 2024          clllll.pdfplan de capacitacion docente  AIP 2024          clllll.pdf
plan de capacitacion docente AIP 2024 clllll.pdfenelcielosiempre
 
Ley 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularLey 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularMooPandrea
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptxFelicitasAsuncionDia
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaDecaunlz
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...JAVIER SOLIS NOYOLA
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioELIASAURELIOCHAVEZCA1
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dstEphaniiie
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñotapirjackluis
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxMaritzaRetamozoVera
 
Valoración Crítica de EEEM Feco2023 FFUCV
Valoración Crítica de EEEM Feco2023 FFUCVValoración Crítica de EEEM Feco2023 FFUCV
Valoración Crítica de EEEM Feco2023 FFUCVGiustinoAdesso1
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptxdeimerhdz21
 
actividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoactividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoJosDanielEstradaHern
 
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática5    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática5    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfMaritzaRetamozoVera
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICAÁngel Encinas
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxYadi Campos
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 

Último (20)

Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
 
Criterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosCriterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficios
 
plan de capacitacion docente AIP 2024 clllll.pdf
plan de capacitacion docente  AIP 2024          clllll.pdfplan de capacitacion docente  AIP 2024          clllll.pdf
plan de capacitacion docente AIP 2024 clllll.pdf
 
Ley 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularLey 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circular
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativa
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes d
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docx
 
Valoración Crítica de EEEM Feco2023 FFUCV
Valoración Crítica de EEEM Feco2023 FFUCVValoración Crítica de EEEM Feco2023 FFUCV
Valoración Crítica de EEEM Feco2023 FFUCV
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptx
 
actividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoactividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° grado
 
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática5    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática5    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 

Java colecciones

  • 1. Prof. Renny Batista Programación IIIOctubre, 2015 Colecciones en Java
  • 2. Colecciones Es un objeto que almacena un conjunto de referencias a otros objetos, dicho de otra manera es una especie de arreglo (array) de objetos. Las colecciones son dinámicas, no tienen un tamaño fijo y permiten añadir y eliminar objetos en tiempo de ejecución. Java incluye en el paquete java.util un diverso conjunto de clases para la creación y manejo de las colecciones. Todas ellas proporcionan una serie de métodos para realizar operaciones básicas sobre una colección: Añadir objetos a la colección Eliminar objetos de la colección Obtener un objeto Localizar algún objeto de la colección Iterar a través de la colección
  • 3. Colecciones – La interfaz Collection La interfaz Collection es la interfaz raíz en la jerarquía de colecciones, a partir de la cual se derivan las interfaces Set y List. La interfaz Collection contiene operaciones masivas para agregar, borrar, comparar y retener objetos en una colección. La interfaz Collection proporciona un método llamado iterator para obtener un objeto Iterator. La clase Collections proporciona métodos static para manipular colecciones. Muchos de los métodos son implementaciones de algoritmos polimórficos para buscar, ordenar, etcétera.
  • 4. Colecciones – La interfaz Collection Katy Sierra, Bert Bates - SCJP 6 Study Guide
  • 5. Diagrama de decisión para el uso de colecciones http://www.adictosaltrabajo.com/tutoriales/introduccion-a-colecciones-en-java/
  • 6. Colecciones de tipo genéricos El uso de colecciones basadas en tipos genéricos proporciona un mecanismo que permite notificar al compilador el tipo de objeto que va a ser almacenado en la colección. Cualquier instrucción que intente almacenar en la colección un objeto de un tipo que no sea el especificado provocará un error de compilación. Dado que se conoce el tipo de objeto almacenado en la colección, no será necesario realizar una conversión explícita (casting) durante su recuperación. El tipo especificado durante la utilización de las colecciones genéricas solamente pueden ser de tipo objeto, no siendo posible utilizar tipos básicos (primitivos) de Java.
  • 7. ArrayList Un ArrayList representa una colección basada en índices, en la que cada objeto de la misma tiene asociado un número (índice) según la posición que ocupa dentro de la colección, siendo 0 la posición del primer elemento. ArrayList Clase Persona 0 1 2 n Índices Class Persona{ private String id; private String nombre; private int edad; } 001 Pedro 34 002 María 25 003 Luis 30 Objetos
  • 8. Creación de un ArrayList Para crear un ArrayList utilizamos la expresión: ArrayList <tipo_objeto> variable = new ArrayList <tipo_objeto>(); Ejemplo: //ArrayList de tipo cadena ArrayList<String> arraylist=new ArrayList<String>(); //ArrayList de objetos del tipo Persona ArrayList<Persona> arraylist=new ArrayList<Persona>();
  • 9. Creación de un ArrayList Ejemplo: //Se crea una clase llamada Estudiante public class Estudiante { String id; String nombre; int edad; Estudiante(String id,String nombre,int edad){ this.id = id; this.nombre = nombre; this.edad=edad; } }
  • 10. Creación de un ArrayList - Ejemplo import java.util.*; public class EjemploColeccion { public static void main(String args[]){ Estudiante estudiante1=new Estudiante("001","Pedro",35); Estudiante estudiante2=new Estudiante("002","Maria",24); Estudiante estudiante3=new Estudiante("003","Luis",28); ArrayList<Estudiante> arraylist=new ArrayList<Estudiante>(); arraylist.add(estudiante1); arraylist.add(estudiante2); arraylist.add(estudiante3); Iterator<Estudiante> itr=arraylist.iterator(); while(itr.hasNext()){ Estudiante estudiante=(Estudiante)itr.next(); System.out.println(estudiante.id+"t"+estudiante.nombre+"t"+estudiante.edad); } } } Crea el ArrayList de objetos Estudiante Instanciando objetos de la clase Estudiante Agregamos los objetos al ArrayList (método add) Se crea un objeto del tipo Iterator Recorremos el ArrayList
  • 11. Algunos métodos de la clase ArrayList add(Object objeto) añade un nuevo objeto a la colección. add(int indice, Object objeto) añade un objeto a la colección en la posición especificada por el índice, desplazando el resto de los elementos. get(int indice) devuelve el objeto que ocupa la posición indicada. remove(int indice) elimina de la colección el objeto que ocupa la posición indicada. clear() elimina todos los objetos de la colección. indexOf(Object objeto) localiza en el ArrayList el objeto indicado cómo parámetro, devolviendo su posición. En caso de que el objeto no se encuentre en la colección la invocación al método devolverá -1. size() devuelve el número de elementos almacenados en la colección.
  • 12. Hashtable Un Hashtable representa una colección basada en claves, dónde los objetos almacenados en la misma (valores) no tienen asociado un índice numérico basado en su posición, sino una clave que lo identifica de forma única dentro de la colección. Una clave puede ser cualquier tipo de objeto. Hashtable Clase Persona 001 002 003 Objn Claves Objectos Class Persona{ private String id; private String nombre; private int edad; private char sexo; } Pedro 34 ‘M’ María 25 ‘F’ Luis 30 ‘M’ Valor Objetos
  • 13. Hashtable El uso de colecciones basadas en claves resulta útil en aquellas aplicaciones en las que se requiera realizar búsquedas de objetos a partir de un dato que lo identifica. Por ejemplo, si se va a tratar una colección de objetos de tipo “Persona”, resulta más practico almacenarlo en un hashtable, asociando como clave el valor de atributo “Id” o “Código” del objeto Persona. Creación de un objeto Hashtable: //Declaración simple Hashtable variable_hash = new Hashtable<>(); //Declaración tipos genericos Hashtable<Obj, Obj> variable_hash = new Hashtable<Obj, Obj>(); Tipo de Objeto (Valor) Tipo de Objeto (Clave)
  • 14. Algunos métodos de la clase Hashtable put(Object key, Object valor) añade a la colección el objeto valor, asignándole la clave especificada por key. En caso de existir esa clave en la colección, el objeto que tenía asignado esa clave se sustituye por el nuevo objeto valor, devolviendo el objeto sustituido. containsKey(Object key) indica si la clave especificada existe o no en la colección. get(Object key) devuelve el valor que tiene asociado la clave que se indica en el parámetro. remove(Object key) elimina de la colección el objeto cuya clave se especifique en el parámero. size() devuelve el número de elementos almacenados en la colección. Enumeration keys() devuelve un objeto enumeration que permite iterar sobre el conjunto de claves.
  • 15. Ejemplo de Hashtable //Creamos una clase llamada Estudiante public class Estudiante { //Atributos private String id; private String nombre; private int edad; Estudiante(String id,String nombre,int edad){ this.id = id; this.nombre = nombre; this.edad=edad; } //Metodos getters public String getId() { return id; } public String getNombre() { return nombre; } public int getEdad() { return edad; } }
  • 16. Ejemplo de Hashtable import java.util.*; public class EjemploColeccion { public static void main(String args[]){ //Creando objetos de la clase Estudiante Estudiante estudiante1=new Estudiante("001","Pedro",35); Estudiante estudiante2=new Estudiante("002","Maria",24); Estudiante estudiante3=new Estudiante("003","Luis",28); Hashtable<String, Estudiante> tablahash = new Hashtable<String,Estudiante>(); tablahash.put(estudiante1.getId(), estudiante1); tablahash.put(estudiante2.getId(), estudiante2); tablahash.put(estudiante3.getId(), estudiante3); System.out.println(tablahash.get("002").getNombre()); System.out.println(tablahash.get("003").getNombre()); } Se crea la tabla con key de tipo String, y objetos del tipo Estudiante Agregamos los objetos a la tabla hash. Como clave el Id del Estudiante y el objeto Estudiante. Con los métodos getters de Estudiantes se puede ver al contenido del objeto
  • 17. Iteración de un Hashtable: Interfaz Enumeration Como un Hashtable no está basado en índices, no puede ser recorrido utilizando una sentencia for. Para recorrer (iterar) sobre un Hashtable se puede hacer uso del objeto enumeration. Enumeration es un objeto que implementa la interfaz java.util.Enumeration. Los métodos de esta interfaz permiten recorrer una colección de objetos asociada y acceder a ella. Un objeto Enumeration lo podemos imaginar como una especie de puntero o referencia, que puede ir apuntando a cada uno de los elementos de la colección.
  • 18. Metodos de la Interfaz Enumeration nextElement() La llamada de este método sobre un objeto Enumeration provoca que este pase a apuntar al siguiente objeto de la colección. Inicialmente, un enumeration se encuentra apuntando a la posición que está antes del primer objeto de la colección, por lo que la primera llamada a este método devolverá el primer objeto. hasMoreElements() indica si hay más elementos por recorrer en la colección. Cuando el objeto enumeration este apuntando al último elemento, la llamada a este método devolverá false.
  • 19. Metodos de la Interfaz Enumeration //Creamos la tabla hash Hashtable<String, Estudiante> tablahash = new Hashtable<String,Estudiante>(); //Agregamos los objetos a la tabla tablahash.put(estudiante1.getId(), estudiante1); tablahash.put(estudiante2.getId(), estudiante2); tablahash.put(estudiante3.getId(), estudiante3); Enumeration<Estudiante> enumeration = tablahash.elements(); while (enumeration.hasMoreElements()) { System.out.println("Estudiantes: "+enumeration.nextElement().getNombre()); } Apuntamos al siguiente elemento de la tabla y obtenemos el nombre de cada Estudiante Se crea una instancia de la clase Enumeration de tipo Estudiante Se recorre la tablahash con el objeto enumeration
  • 20. Metodos de la Interfaz Enumeration Si queremos saber cuales son las claves de un HashTable usamos el método keys(). Enumeration<String> claves = tablahash.keys(); while (claves.hasMoreElements()) { System.out.println(""+"hashtable claves: " + claves.nextElement()); } También se puede obtener la enumeración de todas las claves mediante el uso del método keys(). System.out.println("Claves: " +tablahash.keys());
  • 21. La clase Vector La clase Vector, al igual que ArrayList o LinkedList, también implementa a List, pero de un modo especial. Este modo especial es sincronizado, lo que permite que se pueda usar en entornos concurrentes (es decir, en varios procesos que se ejecutan al mismo tiempo y hacen uso posiblemente de los mismos recursos). Esta además es la principal característica que la diferencia de otras clases presentadas anteriormente como ArrayList. Se recomienda que si no es necesario se use ArrayList en vez de Vector. Por tanto, solo utilizaremos la clase Vector si tenemos previstas circunstancias especiales como procesos concurrentes. Un objeto de tipo Vector contiene elementos que pueden ser accedidos por un índice y puede aumentar o disminuir su tamaño dinámicamente en tiempo de ejecución.
  • 22. La clase Vector Creación de un objeto vector: Vector variable_vector = new Vector(); Vector<Objeto> variable_vector = new Vector<Objeto>(); Algunos métodos de la clase Vector: addElement(Objeto) se añade un objeto al vector. elementAt(int i) Devuelve el elemento en la posición indicada por i. indexOf(Object elemento) Devuelve el índice de la primera aparición de elemento. Si el objeto no está en el vector devuelve –1. size( ) Devuelve el número de elementos en el vector.
  • 23. La clase Vector Algunos métodos de la clase Vector: isEmpty() Devuelve true si el vector está vacío y false si contiene uno o más elementos. lastElement() Devuelve el último elemento del vector. removeAllElements( ) Vacía el vector. Tras ejecutarse este método, el tamaño del vector es cero. removeElement(Object) Quita elemento del vector. Si existe en el vector más de una instancia del objeto especificado, entonces se quita la primera. Devuelve true si se hizo con éxito y false si el objeto no se encontró. removeElementAt(int indice) Quita el elemento en la posición indicada por índice.
  • 24. Ejemplo de la clase Vector Creamos una clase “Persona” public class Persona { public int idPersona; public String nombre; public double altura; public Persona(int idPersona, String nombre, double altura) { this.idPersona = idPersona; this.nombre = nombre; this.altura = altura; } @Override public String toString() { return "Persona-> ID: "+idPersona+" Nombre: "+nombre+" Altura: "+altura+"n"; } } Se sobrescribe el método toString para poder mostrar los valores almacenados en los atributos
  • 25. Ejemplo de la clase Vector import java.util.Vector; public class EjemploColeccion { public static void main(String args[]){ Vector<Persona> vector = new Vector<Persona>(); int i = 1; while (i<=5) { vector.add(new Persona(i,"Persona_"+i,i+150)); i++; } for (Persona persona : vector) { System.out.print(persona.toString()); } } } Se crea un Vector del tipo Persona Persona-> ID: 1 Nombre: Persona_1 Altura: 151.0 Persona-> ID: 2 Nombre: Persona_2 Altura: 152.0 Persona-> ID: 3 Nombre: Persona_3 Altura: 153.0 Persona-> ID: 4 Nombre: Persona_4 Altura: 154.0 Persona-> ID: 5 Nombre: Persona_5 Altura: 155.0
  • 26. Bibliografías Martín, Antonio. Programador Certificado Java 2. Curso Práctico. Editorial RA-MA. 2da Edición. Joyanes L., Zahonero I. Programación en Java 6. Algoritmos, programación orientada a objetos e interfaz gráfica de usuarios. McGRAW-HILL INTERAMERICANA EDITORES, S.A. DE C.V. 1ra Edición. Schildt H. Java Manual de referencia. McGRAW-HILL INTERAMERICANA EDITORES, S.A. DE C.V. 7ma Edición