SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SCJP 6.0 SEMANA SIETE GENERICOS Y COLECCIONES.

Slides:



Advertisements
Presentaciones similares
Curso de java básico (scjp)
Advertisements

Técnicas avanzadas en java 1.4 y java 5.0
Curso de java básico (scjp)
CJ02 – Técnicas avanzadas en java 1.4 y 5.0
LICENCIATURA EN SISTEMAS COMPUTACIONALES EN ADMINISTRACION
Curso de Java Capitulo 7: Continuación Poo Profesor:
Curso de Java Capitulo 6: Cadenas y Arrays Profesor:
Curso de Java Capitulo 7: Conceptos sobre poo Profesor:
Lenguaje de programación Java
SCJP Sun Certified Programmer for Java 6
Arquitectura CLARO-TECNOTREE
Polimorfismo Unidad 4.
Las estructuras de arreglos fueron usadas en las primeras computadoras digitales, cuando la programación se hacía todavía en lenguaje máquina, para tablas.
Capitulo 3 Java util.
Aplicación del paradigma orientado a objetos
Encapsulamiento y Abstracción
PROGRAMACIÓN ORIENTADA A OBJETOS
Marzo 2007 Lenguajes Visuales Clase III.
Manipulación de caracteres e hileras de texto
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SCJP 6.0 SEMANA SEIS DESARROLLO, INNER CLASSES.
4.- Orientación a Objetos Justo N. Hidalgo Sanz DEPARTAMENTO DE INGENIERÍA INFORMÁTICA.
JAVA 1.5 Fernando Almeida Octubre Introducción Java Specification Request (JSR) 14Java Specification Request (JSR) 14 propone introducir tipos y.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SCJP 6.0 SEMANA CINCO CONSOLE.
Tema 6: Clases Antonio J. Sierra.
Tablas hash Juan Ramón Pérez Pérez Prácticas EDI - © Juan Ramón Pérez.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SCJP 6.0 SEMANA OCHO THREADS.
Técnicas avanzadas de programación Interfaces
Colecciones.
SCJP Sun Certified Programmer for Java 6
Manejo de Excepciones Agustín J. González ELO329.
UNIDAD 2 CLASES Y OBJETOS. CLASE Elementos cabecera y cuerpo de la clase. Cabecera: aporta información fundamental sobre la clase en sí y constituye de.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SCJP 6.0 SEMANA OCHO THREADS.
Curso Programación en Java
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6
Programación Interactiva Eventos y Swing Escuela de Ingeniería de Sistemas y Computación Facultad de Ingeniería Universidad del Valle.
ESTRUCTURA DE DATOS EN JAVA
Clase 10: Estructuras de datos y arreglos.
Objetivos de Certificación
El lenguaje de programación Java
ELO3201 Contenedores Biblioteca Estándar de Templates Agustín J. González ELO320 Contenido Contenedores: Vector, List, Deque, Stack, Queue, Priority Queue,
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SEMANA DOS ORIENTACION A OBJETOS.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SCJP 6.0 SEMANA SIETE GENERICOS Y COLECCIONES.
Tema 17: java.util Antonio J. Sierra.
Tema II Estructuras de datos en Java Temas Selectos de Cómputo Grupo 912 Agosto-Diciembre 2005.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6
Curso de Java Programación Orientada a Objetos
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SCJP 6.0 SEMANA CUATRO CONTROL DE FLUJOS, EXCEPCIONES Y ASERSIONES.
FACULTAD DE ESTUDIOS SUPERIORES ARAGON
Clasificación de los TDA
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SCJP 6.0 SEMANA OCHO THREADS.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6
Programación Orientada a Objetos Profesor : Ernesto Eduardo Vivanco Tapia.
El lenguaje de programación Java1 8. Colecciones e iteradores - interfaz Collection - clases ArrayList, LinkedList, HashSet, TreeSet - interfaz Map - clases.
Patrón Iterator Santiago García Sánchez Rebeca Marcos Salcedo Mª Cristina Zapatero Gironda.
Herencia. Introducción La idea básica es poder crear clases basadas en clases ya existentes. Cuando heredamos de una clase existente, estamos re-usando.
Colecciones en JAVA José Luis Redondo García.
Detalles Generales sobre Java
PROGRAMACIÓN ORIENTADA A OBJETOS Unidad 1 GENERICIDAD
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SCJP 6.0 SEMANA SEIS DESARROLLO, INNER CLASSES.
Programación orientada a objetos
MIA - Grupo 5 Unidad 2.
MEMORIA DINÁMICA.
ARRAYS Y COLECCIONES DE DATOS. ARRAYS Arrays – Matriz – Vector Elemento del lenguaje que nos permite agrupar un conjunto de valores del mismo tipo, y.
Herencias Conceptos básicos i
Tratamientos Secuenciales Generalizados II Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 19 Versión
Factorías e Iterables Introducción del concepto de patrón de diseño Construcción de tipos para recorridos con for extendido Fundamentos de Programación.
1 Métodos. 2 Un método es un conjunto de instrucciones definidas dentro de una clase, que realizan una determinada tarea y a las que podemos invocar mediante.
Métodos en Java. Estructura de un programa en Java ► La relación con la vida misma la podemos ver en el siguiente comentario: Imaginemos que dos clases.
Las interfaces Predicate y Function Versión Unidad Didáctica 17 Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos.
Definición: Es un estilo de programación, su objetivo primordial es la separación de la capa de presentación, capa de negocio y la capa de datos. ARQUITECTURA.
Transcripción de la presentación:

SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6

SCJP 6.0 SEMANA SIETE GENERICOS Y COLECCIONES

C OLLECTIONS

INTERFAZ E IMPLEMENTACIONES DE LIST Para las listas lo mas importantes es el indice. La unica cosa que no tienen las non-listas es un conjunto de metodos relacionados con el indice. Estos metodos incluyen cosas como: get(int index); indexOf(Object o); add(int index, Object o); Entre otros… Todas las implementaciones de List se basan en la posicion del indice. Una posicion se determina agregando un objeto en un indice especifico o agregandolo sin especificar una posicion Las tres implementaciones de List son: ArrayList Vector LinkedList

INTERFAZ E IMPLEMENTACIONES DE LIST ArrayList Esta implementación da una iteración rápida y un fácil acceso aleatorio Vector Vector es la implementación original que hace ArrayList, solo que sus métodos están sincronizados Vector y Hashtable son las dos colecciones originales, existen desde los primeros dias de Java LinkedList Esta implementación es una lista doblemente ligada Es mas lenta que ArrayList a la hora de iterar Es mas rapida a la hora de eliminar o agregar elementos, Implementa la interface java.util.Queue lo que le da los metodos de peek(), poll() y offer()

INTERFAZ E IMPLEMENTACIONES DE SET Set se encarga de hacer únicos a los elementos que contiene, no permite objetos duplicados. Su mejor amigo es el método equals() que determina cuando dos objetos son identicos (pero solo uno estara dentro del Set ) Sus tres implementaciones son: HashSet LinkedHashSet TreeSet

INTERFAZ E IMPLEMENTACIONES DE SET HashSet Es una colección que no permite objetos repetidos Utiliza el método hashCode() para un mejor rendimiento LinkedHashSet Es una colección que no permite objetos repetidos y todos sus elementos los liga como se van insertando Cuando se itera un HashSet el orden es impredecible, en cambio el LinkedHashSet itera los elementos en el orden en como fueron insertados TreeSet Es una colección que no permite objetos repetidos, sus elementos están ligados y ordenados ascendentemente, de acuerdo al orden natural de cada objeto

I NTERFAZ M AP Los mapas se encargan de hacer únicas a cada una de las llaves que utiliza Sus elementos siempre son “ llave/valor ” donde el valor es el objeto que se quiere guardar en la colección Para obtener el objeto guardado se puede usar la “llave” con la que ha sido guardado u obteniendo toda la colección de valores Todas las llaves están contenidas en un Set, por lo tanto deberían de ser únicas Sus implementaciones son: HashMap HashTable LinkedHashMap TreeMap

I MPLEMENTACIONES DE M AP HashMap Este mapa utiliza el método hashCode() de las llaves para situarlos en al “bonche” de objetos Una vez elegido el “bonche” en donde se guardara el objeto se utiliza el método equals() de la llave para saber si ya existe esa llave Si la llave ya existe, se cambia el objeto viejo por el nuevo Si la llave no existe, se crea un nuevo elemento “llave/valor” HashMap permite una llave nula y multiples valores nulos en una coleccion

I MPLEMENTACIONES DE M AP HashTable Tiene las mismas funcionalidades que HashMap pero sus métodos son sincronizados Hashtable no permite nulos LinkedHashMap Es un mapa cuyos elementos “llave/valor” se ligan de manera como se insertan Para agregar y remover elementos puede ser mas lento que HashMap, pero es mas rapido para iterar TreeMap Es un mapa cuyos elementos “llave/valor” se ligan de manera como se insertan y están ordenados ascendentemente en base a su llave, también implementa NavigableMap.

INTERFAZ E IMPLEMENTACIONES DE QUEUE La interfaz Queue aunque tiene varios métodos de ordenamiento es utilizada por lo regular como un FIFO(first-in, first-out) Esta interfaz hereda de la interfaz Collection PriorityQueue Esta clase se agrego en Java 5 El propósito de esta clase es para crear una “prioridad de entrada, prioridad de salida” Los elementos de una PriorityQueue son ordenados de manera natural(en este caso los elementos se accesan de la manera en que están ordenados) o con un “Comparator”

I NTERFACES E IMPLEMENTACIONES

U SANDO EL FRAMEWORK C OLLECTION

A RRAY L IST ArrayList es una de las clases mas usadas del Framework Collections. Algunas de sus ventajas son: Puede crecer dinámicamente Provee un me mejor mecanismo de inserción y búsqueda que un array Usualmente se programa de manera polimórfica como esto: Asi se puede hacer a partir de Java 5:

AUTOBOXING CON COLLECTIONS Las colecciones solo pueden guardar y regresar objetos. Anteriormente se obligaba a meter los primitivos dentro de sus clases Wrapp A partir de Java 5 se puede hacer de la siguiente manera:

O RDENANDO COLECCIONES La clase String tiene lo necesario, para poder utilizarla en colecciones de la siguiente manera

O RDENANDO COLECCIONES Del ejemplo anterior, obtenemos una salida como la siguiente:

E JERCICIO Probar el código anterior

O RDENANDO COLECCIONES Si tenemos lo siguiente:

O RDENANDO COLECCIONES Y hacemos lo siguiente: Lo ordenamos: ¿Cual sera la salida?

O RDENANDO COLECCIONES Si se trata de ordenar una lista cuyos objetos no hayan implementado la interface Comparable, se obtiene un error de esta forma: Esto es porque el metodo sort() no tiene un metodo que reciba como parametro un objeto de tipo dvdlist

O RDENANDO COLECCIONES Si vemos la firma del metodo sort() nos damos cuenta que recibe como parametro un objeto de tipo List … pero… los objetos dentro de esa lista deben de implementar la interface Comparable. La clase String implementa la interface Comparable, por lo tanto, podemos ordenar facilmente una lista llena de objetos String

L A INTERFACE COMPARABLE La interface Comparable es usada por el método Collections.sort() y el método java.util.Arrays.sort() Estos métodos ordenan las listas y los arreglos respectivamente La clase que implementa la interface Comparable, obliga a implementar el metodo compareTo()

L A INTERFACE COMPARABLE Este metodo regresa un entero con las siguientes caracteristicas Negativo si thisObject < anotherObject Cero si thisObject == anotherObject Positivo si thisObject > anotherObject El metodo sort() usa el metodo compareTo() para determinar como la lista o el array de objetos deberan ser ordenados

L A INTERFACE COMPARABLE En la linea 1 declaramos la clase DVDInfo que implementa Comparable En la linea 2 implementamos el metodo compareTo() para comparar el titulo de dos objetos DVDInfo

L A INTERFACE COMPARABLE RECUERDA: Cuando se sobreescribe el metodo equals() el argumento debe de ser de tipo Object Cuando se sobreescribe el metodo compareTo() el argumento debe de ser del mismo tipo del que se quiere ordenar ¿Que pasa si quiero ordenar de otra forma?

LA INTERFACE COMPARABLE

E JERCICIO Crear un objeto que implemente la interfaz Comparable para que pueda ser ordenado por Collections.sort() o java.util.Arrays.sort()

O RDENANDO CON COMPARATOR En este caso no es necesario implementar la interface Comparable para los objetos que serán ordenados, en este caso, el ordenamiento se hace de manera separada La interface Comparator tiene la capacidad de ordenar una colección de diferentes formas. Es mas facil de usar comparado con Comparable Solo se tiene un metodo llamado compare()

COMPARABLE VS COMPARATOR