SlideShare uma empresa Scribd logo
1 de 33
Colecciones Ing. Rolando Steep Quezada Martínez [email_address] Programación Básica en Java y Programación Orientada a Objetos
Genéricos
Autoboxing/Unboxing ,[object Object],[object Object],[object Object],//Antes Integer unentero = new Integer( 5 )  ; // el valor de unentero es inmutable //JDK 1.5  Integer unentero = 5  ; unentero++  ; System.out.println( unentero )  ;
¿Framework para colecciones? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Colecciones en Java. Interfaces ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
 
Colecciones en Java. Interface Collection ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Colecciones en Java. Adaptador AbstractCollection ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Colecciones en Java.  Implementación de listas
 
Colecciones en Java. Vector ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Colecciones en Java. Stack ,[object Object],Stack pila =  new  Stack()  ; for (  int  i=0  ;  i < 10  ;  i++ ) pila.push( i )  ; Enumeration lista = pila.elements()  ; for(  int  i=0  ;  i < 10  ;  i++ ) System.out.println( pila.pop() )  ;
Colecciones en Java. ArrayList ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Colecciones en Java. LinkedList ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Colecciones en Java.  Implementación de conjuntos
Colecciones en Java. TreeSet ,[object Object]
Colecciones en Java. HashSet ,[object Object]
Colecciones en Java. LinkedHashSet ,[object Object]
Colecciones en Java.  Implementación de mapas
 
Colecciones en Java. HashMap ,[object Object]
Colecciones en Java. LinkedHashMap ,[object Object]
Colecciones en Java. IdentityHashMap ,[object Object]
Colecciones en Java. WeakHashMap ,[object Object]
Colecciones en Java. TreeMap ,[object Object]
Colecciones en Java. EnumMap ,[object Object]
Colecciones en Java. Hashtable ,[object Object],[object Object]
Colecciones en Java. Properties ,[object Object]
Colecciones en Java.  Implementación de colas
Colecciones en Java. PriorityQueue ,[object Object]
Resumen ,[object Object],[object Object],[object Object],[object Object],[object Object]
Práctica 10 ,[object Object],[object Object],[object Object],[object Object]
 

Mais conteúdo relacionado

Mais procurados

Poo 4 arraylist
Poo 4 arraylistPoo 4 arraylist
Poo 4 arraylistjlmanmons
 
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
 
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
 
Jyoc java-cap11 colecciones
Jyoc java-cap11 coleccionesJyoc java-cap11 colecciones
Jyoc java-cap11 coleccionesJyoc X
 
2 2 2 Arraylist Y Operadores
2 2 2 Arraylist Y Operadores2 2 2 Arraylist Y Operadores
2 2 2 Arraylist Y OperadoresUVM
 
Tema 6 colecciones por gio
Tema 6   colecciones por gioTema 6   colecciones por gio
Tema 6 colecciones por gioRobert Wolf
 
Mapas y Diccionarios - Colecciones Parametrizadas
Mapas y Diccionarios - Colecciones ParametrizadasMapas y Diccionarios - Colecciones Parametrizadas
Mapas y Diccionarios - Colecciones ParametrizadasChristian Collaguazo Malla
 
DAW - Estructuras de almacenamiento
DAW - Estructuras de almacenamientoDAW - Estructuras de almacenamiento
DAW - Estructuras de almacenamientovay82
 
Iteradores, Listas y Conjuntos en Java
Iteradores, Listas y Conjuntos en JavaIteradores, Listas y Conjuntos en Java
Iteradores, Listas y Conjuntos en JavaGaby Delgado
 
Elementos de una clase
Elementos de una claseElementos de una clase
Elementos de una claseIsaias Toledo
 

Mais procurados (20)

Poo 4 arraylist
Poo 4 arraylistPoo 4 arraylist
Poo 4 arraylist
 
Colecciones en java
Colecciones en javaColecciones en java
Colecciones en java
 
Programación 3: colecciones Java
Programación 3: colecciones JavaProgramación 3: colecciones Java
Programación 3: colecciones Java
 
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
 
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
 
Jyoc java-cap11 colecciones
Jyoc java-cap11 coleccionesJyoc java-cap11 colecciones
Jyoc java-cap11 colecciones
 
Multitarea
MultitareaMultitarea
Multitarea
 
2 2 2 Arraylist Y Operadores
2 2 2 Arraylist Y Operadores2 2 2 Arraylist Y Operadores
2 2 2 Arraylist Y Operadores
 
Tema 6 colecciones por gio
Tema 6   colecciones por gioTema 6   colecciones por gio
Tema 6 colecciones por gio
 
Array listlistas
Array listlistasArray listlistas
Array listlistas
 
Mapas y Diccionarios - Colecciones Parametrizadas
Mapas y Diccionarios - Colecciones ParametrizadasMapas y Diccionarios - Colecciones Parametrizadas
Mapas y Diccionarios - Colecciones Parametrizadas
 
DAW - Estructuras de almacenamiento
DAW - Estructuras de almacenamientoDAW - Estructuras de almacenamiento
DAW - Estructuras de almacenamiento
 
Matrices en php
Matrices en phpMatrices en php
Matrices en php
 
Iteradores, Listas y Conjuntos en Java
Iteradores, Listas y Conjuntos en JavaIteradores, Listas y Conjuntos en Java
Iteradores, Listas y Conjuntos en Java
 
Biblioteca
BibliotecaBiblioteca
Biblioteca
 
I unidad
I unidadI unidad
I unidad
 
Serializacion
SerializacionSerializacion
Serializacion
 
Elementos de una clase
Elementos de una claseElementos de una clase
Elementos de una clase
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
HashTable
HashTableHashTable
HashTable
 

Semelhante a Colecciones Java

[ES] Colecciones y estructura de iteracion
[ES] Colecciones y estructura de iteracion[ES] Colecciones y estructura de iteracion
[ES] Colecciones y estructura de iteracionEudris Cabrera
 
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
 
OCP, JSE 6 Programmer (1Z0-851) - Guia practica 6 de 7(Colecciones y Genericos)
OCP, JSE 6 Programmer (1Z0-851) - Guia practica 6 de 7(Colecciones y Genericos)OCP, JSE 6 Programmer (1Z0-851) - Guia practica 6 de 7(Colecciones y Genericos)
OCP, JSE 6 Programmer (1Z0-851) - Guia practica 6 de 7(Colecciones y Genericos)Oscar V
 
javadesdecerocolecciones-140914051359-phpapp01.pptx
javadesdecerocolecciones-140914051359-phpapp01.pptxjavadesdecerocolecciones-140914051359-phpapp01.pptx
javadesdecerocolecciones-140914051359-phpapp01.pptxCompusoftnetCiaLtda
 
Vectores, array y sus métodos
Vectores, array y sus métodosVectores, array y sus métodos
Vectores, array y sus métodosOrlando Verdugo
 

Semelhante a Colecciones Java (20)

[ES] Colecciones y estructura de iteracion
[ES] Colecciones y estructura de iteracion[ES] Colecciones y estructura de iteracion
[ES] Colecciones y estructura de iteracion
 
JAVA OO - TEMA 08 - COLECCIONES
JAVA OO - TEMA 08 - COLECCIONESJAVA OO - TEMA 08 - COLECCIONES
JAVA OO - TEMA 08 - COLECCIONES
 
Arraylist
ArraylistArraylist
Arraylist
 
JAVA ORIENTADO A OBJETOS - COLECCIONES
JAVA ORIENTADO A OBJETOS - COLECCIONESJAVA ORIENTADO A OBJETOS - COLECCIONES
JAVA ORIENTADO A OBJETOS - COLECCIONES
 
Java Collection Framework: lo que todo Java Dev debe conocer
Java Collection Framework: lo que todo Java Dev debe conocerJava Collection Framework: lo que todo Java Dev debe conocer
Java Collection Framework: lo que todo Java Dev debe conocer
 
Colecciones en Scala
Colecciones en ScalaColecciones en Scala
Colecciones en Scala
 
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
 
Trabajo de consulta
Trabajo de consultaTrabajo de consulta
Trabajo de consulta
 
OCP, JSE 6 Programmer (1Z0-851) - Guia practica 6 de 7(Colecciones y Genericos)
OCP, JSE 6 Programmer (1Z0-851) - Guia practica 6 de 7(Colecciones y Genericos)OCP, JSE 6 Programmer (1Z0-851) - Guia practica 6 de 7(Colecciones y Genericos)
OCP, JSE 6 Programmer (1Z0-851) - Guia practica 6 de 7(Colecciones y Genericos)
 
Informe Poo
Informe PooInforme Poo
Informe Poo
 
Colecciones en Scala
Colecciones en ScalaColecciones en Scala
Colecciones en Scala
 
javadesdecerocolecciones-140914051359-phpapp01.pptx
javadesdecerocolecciones-140914051359-phpapp01.pptxjavadesdecerocolecciones-140914051359-phpapp01.pptx
javadesdecerocolecciones-140914051359-phpapp01.pptx
 
4_colecciones.ppt
4_colecciones.ppt4_colecciones.ppt
4_colecciones.ppt
 
S6-Contenedores
S6-ContenedoresS6-Contenedores
S6-Contenedores
 
Tema6
Tema6Tema6
Tema6
 
S6-POO-3.2 Contenedores Especiales
S6-POO-3.2 Contenedores EspecialesS6-POO-3.2 Contenedores Especiales
S6-POO-3.2 Contenedores Especiales
 
Vectores, array y sus métodos
Vectores, array y sus métodosVectores, array y sus métodos
Vectores, array y sus métodos
 
Semana 04
Semana 04Semana 04
Semana 04
 
Estructuras de datos
Estructuras de datosEstructuras de datos
Estructuras de datos
 
Programacion
ProgramacionProgramacion
Programacion
 

Mais de Rolando Steep Quezada Martinez (9)

Implementación de Aplicaciones Basadas en Texto
Implementación de Aplicaciones Basadas en TextoImplementación de Aplicaciones Basadas en Texto
Implementación de Aplicaciones Basadas en Texto
 
Manejo De Excepciones
Manejo De ExcepcionesManejo De Excepciones
Manejo De Excepciones
 
Diseño de Clases
Diseño de ClasesDiseño de Clases
Diseño de Clases
 
Herencia Y Polimorfismo
Herencia Y PolimorfismoHerencia Y Polimorfismo
Herencia Y Polimorfismo
 
Networking
NetworkingNetworking
Networking
 
Arreglos Expresiones y Control de Flujo
Arreglos Expresiones y Control de FlujoArreglos Expresiones y Control de Flujo
Arreglos Expresiones y Control de Flujo
 
Tipos Primitivos y Elementos Léxicos de Java
Tipos Primitivos y Elementos Léxicos de JavaTipos Primitivos y Elementos Léxicos de Java
Tipos Primitivos y Elementos Léxicos de Java
 
Módulo 01 Introducción a la Tecnología Java
Módulo 01 Introducción a la Tecnología JavaMódulo 01 Introducción a la Tecnología Java
Módulo 01 Introducción a la Tecnología Java
 
Manejo Avanzado de Flujos de Entrada/Salida
Manejo Avanzado de Flujos de Entrada/SalidaManejo Avanzado de Flujos de Entrada/Salida
Manejo Avanzado de Flujos de Entrada/Salida
 

Último

TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docxobandopaula444
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosAlbanyMartinez7
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptxHugoGutierrez99
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar24roberto21
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)JuanStevenTrujilloCh
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armadob7fwtwtfxf
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfKarinaCambero3
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxhasbleidit
 
La tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadLa tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadEduardoSantiagoSegov
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDAVIDROBERTOGALLEGOS
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdfBetianaJuarez1
 

Último (20)

TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos Juridicos
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)
 
El camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVPEl camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVP
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armado
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdf
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
 
La tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadLa tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedad
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptx
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
 

Colecciones Java

Notas do Editor

  1. Objetivos Conocer el framework de colecciones de Java. Identificar e implementar clases genéricas. Conocer el mecanismo de Autoboxing/Unboxing del jdk1.5 de Java.
  2. Genéricos Un genérico es una forma de marcar que un determinado objeto será de una clase determinada o que vendrá definido por una plantilla. Es una forma de hacer más seguros nuestros programas al hacer un tipado más fuerte en tiempo de compilación. Permite eliminar algunos castings. Nos permite crear un fuerte tipado durante el tiempo de ejecución. Se asegura que si el compilador no genera ningún warning, el código es type-safe. El código compilado (el .class) permanece transparente a esta característica. Proporciona más seguridad, pues si antes un código daba errores en tiempo de ejecución, ahora los da en tiempo de compilación: tipado mas fuerte. Permite ahorrarnos los castings.
  3. Autoboxing/Unboxing Convertir tipos primitivos en tipos warpper Tiger convierte los tipos primitivos a su tipo wrapper correspondiente bajo demanda, esto quiere decir que no hay por que complicarse con casting de unos a otros Convertir tipos warpper en tipos primitivos Tiger convierte un tipo wrapper a su primitivos correspondiente bajo demando, esto quiere decir que no hay por que complicarse con casting de unos a otros Incrementar decrementar tipos warpper Con el nuevo sistema de autoboxing/unboxing podemos incrementar o decrementar con los operadores ++ y -- a esto se le llama autounboxing
  4. Framework de Colecciones La estructura de colecciones de Java es un conjunto de interfaces y clases que mejoran notablemente las capacidades del lenguaje respecto a las estructuras de datos. Sus elementos son: Interfaces : Tipos abstractos de datos que representan las colecciones. Permiten manipularlas con independencia de los detalles de su implementación. Implementaciones : Implementaciones concretas de las interfaces anteriores. Algoritmos : Métodos que realizan de forma eficiente tareas habituales, como búsquedas y ordenaciones, sobre objetos que implementan las interfaces de la estructura de colecciones. ¿Cuándo usar colecciones? Cuando se necesitan características más sofisticadas para almacenar objetos, que las que proporciona un simple array. Cuando se necesita redimensionar automáticamente la capacidad de una estructura de datos, por lo que se puede colocar en las colecciones cualquier número de objetos, sin necesidad de tener que ir controlando continuamente en el programa la longitud de la colección.
  5. Colecciones en Java. Interfaces Collection: Colección de objetos en la que se requiere la máxima generalidad. Set (conjunto): Colección sin elementos repetidos. La colección puede estar o no ordenada. Implementaciones: HashSet y LinkedHashSet. SortedSet: Conjunto en el que los elementos se almacenan en orden ascendente, siguiendo el orden natural o aquél establecido por un objeto Comparator . Implementaciones: TreeSet. List (lista): Colección en la que el orden de los elementos es relevante. La colección puede tener elementos repetidos. Implementaciones: ArrayList, LinkedList y Vector. Queue (cola): Colección en la que el orden de los elementos es relevante y se administra como una cola (first in first out). La colección puede tener elementos repetidos. Implementaciones: PriorityQueue, LinkedList. BlockingQueue: Colección utilizada para el framework de concurrencia de Java. Implementaciones : ArrayBlockingQueue, LinkedBlockingQueue, PriorityBlockingQueue. Map (mapa): Estructura de datos agrupados en parejas de la forma clave/valor, lo que permite localizar un valor en función de una clave dada. Implementaciones: HashMap, Hashtable, WeakHashMap, Properties, EnumMap, LinkedHashMap. SortedMap: Mapa en el que los elementos se almacenan en orden ascendente, siguiendo el orden natural o aquél establecido por un objeto Comparator . Implementaciones: TreeMap.
  6. Framework de Colecciones de Java Interfaces Interfaces Principales (core)
  7. Colecciones en Java. Interface Collection Especificaciones de la interface Collection size, retorna el número de elementos de la colección. isEmpty, indica si la colección esta vacía. contains, retorna true si el objeto es miembro de la colección. iterator , retorna un objeto de tipo Iterator para recorrer la colección. toArray , retorna un array con los elementos de la colección. add , permite añadir un nuevo elemento a la colección. remove , permite quitar un elemento de la colección. containsAll , permite buscar los elementos de una colección dentro de la colección actual. addAll , permite añadir todos los elementos de una colección dentro de la colección actual. removeAll , permite quitar todos los elementos de una colección dentro de la colección actual. retainAll , permite mantener sólo los elementos coincidentes dentro de la colección, al igual que una intersección en la teoría de conjuntos. clear , elimina todos los elementos de la colección.
  8. Colecciones en Java. Adaptador AbstractCollection Adaptador Clase que acomoda la interface de una clase a la interface que espera un cliente AbstractCollection Implementa de forma eficiente acciones comunes de las colecciones. Permite la rápida implementación objetos que sigan las especificaciones de la interface Collection. Clases útiles Existen dos clases que proporcionan un conjunto de métodos auxiliares estáticos: java.utils.Arrays y java.utils.Collections, dentro de las utilidades se encuentran: Ordenamiento Comparación Copia Extracción Modificación Búsqueda Sincronización y Creación de colecciones de sólo lectura
  9. Colecciones en Java. Implementación de Listas List Establece estipulaciones adicionales a las del interfaz Collection en los métodos add, equals, hashCode, iterator y remove. También añade nuevos métodos a los allí declarados para un acceso posicional, la obtención de un nuevo tipo de iterator y la obtención de una “vista” representando una porción de la lista. Los elementos en una lista conservan una secuencia, esta es el orden de introducción. Esta secuencia es la utilizada por los dos tipos de iterator a la hora de devolver los elementos en la lista. Una lista permite elementos determinados equivalentes por equals, y la existencia de varios elementos nulos. Aunque también podría crease una versión especial que no lo hiciera. Una lista podría contenerse a si misma, pero dado que equals y hashCode ya no están bien definidos en ella, debería emplearse con máxima precaución. Nota sobre ordered y sorted: no son lo mismo, las listas tienen una secuencia independiente del valor de sus elementos; mientras un TreeSet esta sorted pues sus elementos están dispuestos dependiendo de su valor relativo (ordenados).
  10. Interface List public interface List&lt;E&gt; extends Collection&lt;E&gt; { E get( int index) ; E set( int index, E element) ; void add( int index, E element) ; E remove( int index) ; int indexOf(Object o) ; int lastIndexOf(Object o) ; ListIterator&lt;E&gt; listIterator() ; ListIterator&lt;E&gt; listIterator( int index) ; List&lt;E&gt; subList( int fromIndex, int toIndex) ; } Especificaciones de la interface List get ,permite obtener un elemento dado un índice. set , permite cambiar el valor del elemento dado un índice. add , inserta un nuevo elemento en el índice específico. remove , permite quitar un elemento de la colección dado un índice. indexOf , retorna el índice de la primera aparición del elemento buscado si existe, sino retorna -1. lastIndexOf , retorna el índice de la última aparición del elemento buscado si existe, sino retorna -1. listIterador , retorna un Objeto ListIterator capaz de desplazarse por los elementos de la colección, se puede definir un el retorno de los elementos a partir de un índice inicial. subList , obtiene los elementos contenidos dentro de un rango de índices. Interfaz ListIterator Este tipo especial de Iterator (deriva de él) puede obtenerse de un List, no de un Set. También es fallo- rápido. Añade métodos para iterar hacia atrás, para insertar o remplazar durante la iteración y para obtener la posición del puntero interno. Entre cada par de elementos, y también antes del primero y después del último existe una posible posición del puntero: (0) ele0 (1) ele1 (2) ele2 (3) ele3 (4) El primer elemento tiene un indice cero, mientras que el último indice no corresponde a ningún elemento. La primera posición posible del puntero es cero y la última el tamaño de la lista. El método ListIterator() de una lista devuelve un ListIterator cuyo puntero es cero. El método ListIterator( int ) posiciona el puntero en el indice int.
  11. Colecciones en Java. Vector Una secuencia que permite el acceso a sus elementos mediante sus índices se denomina vector. Es una implementación heredada desde JDK 1.1. En JDK 1.2 fue adaptada para que implementase List. De hecho deriva de AbstracList. No se recomienda su uso. No es mas rápida que las implementaciones ArrayList o LinkedList, sin embargo a diferencia de ellas si esta sincronizada. Sus iterators también son fallo-rápido. Es un arreglo ampliable de referencia a objeto. Internamente, un vector implementa una estrategia de crecimiento para minimizar la reasignación y el espacio desperdiciado. Para recuperar y desplazarse hacia delante de la lista se puede utilizarse un Enumeration, pero no para eliminar ni insertar un elemento.
  12. Colecciones en Java. Stack Deriva de Vector e implementa List, Cloneable y Serializable. También es una implementación heredada de JDK 1.1. En JDK 1.2 añade unos métodos a Vector que permiten tratarlo como una pila: boolean empty() Object push( Object ) int search( Object ) Object pop() Object peek()
  13. Colecciones en Java. ArrayList Conserva una secuencia entre sus elementos, pero no un orden a menos que se utilice Collections.sort. Deriva de la clase AbstractList e implementa List, Clonable y Serializable. Mantiene sus elementos en una matriz. Los métodos size, get, isEmpty, iterator y listIterator se ejecutan en un tiempo constante menor el correspondiente a LinkedList. El método add se ejecuta en un tiempo constante amortizado, es decir, añadir n elementos conlleva un tiempo n multiplicado por el factor constante. Los métodos restantes se ejecutan en un tiempo lineal. Sus iterators son fallo-rapido. Permite duplicados y nulos. No esta sincronizado. Para procurar un acceso seguro por parte de varios hilos de ejecución puede sincronizarse sobre el objeto que la contenga o utilizar Collections.synchronizedList. Dado que la operación de incremento de la capacidad de la matriz que contiene los elementos lleva su tiempo, ante la perspectiva de la inclusión de muchos elementos nuevos es conveniente invocar al método ensureCapacity para evitar ampliaciones sucesivas. El acceso directo es eficiente, no así el secuencial. Mientras la adición o eliminación al comienzo o final es realizada en un tiempo aceptable, la implementación LinkedList la supera ampliamente cuando estas operaciones se realizan en posiciones interiores. Por lo general, es la implementación que por defecto deberíamos escoger, y optar por LinkedList únicamente si deseamos añadir o eliminar con frecuencia en posiciones interiores.
  14. Colecciones en Java. LinkedList Conserva una secuencia entre sus elementos, pero no un orden a menos que se utilice Collections.sort. Deriva de la clase AbstractSequentialList, la cual a su vez extiende de AbstractList. Implementa List, Cloneable y Serializable. Su estructura de datos es un lista enlazada. Las operaciones de acceso posicional empiezan a recorrer la lista desde el extremo mas próximo al indice. El recorrido secuencial y la inserción-extracción de posiciones intermedias son mas rápidas que en la implementación ArrayList. Esta dotada de una serie de operaciones adicionales a las declaradas en el interfaz List. Estas operaciones (que también podrían ser realizados mediante métodos definidos en List) permiten utilizarla como un pila, cola y cola doblemente terminada (dequeue): getFirst(), getLast(), removeFirst(), removeLast(), addFirst() y addLast(). Los cuatro primeros lanzan NoSuchElementException si la lista esta vacía.
  15. Colecciones en Java. Implementación de Conjuntos Set Estipula la no existencia de duplicados. El elemento nulo tampoco puede ser contenido mas de una vez. Extiende de Collection y no añade ningún método a los allí definidos. Sin embargo, si modifica el contrato impuesto por los métodos add, equals y hashCode. Además, las clases que implementen este interfaz deben imponer a sus constructores la imposibilidad de añadir elementos duplicados. El método equals de los elementos será invocado para averiguar si el objeto a añadir ya existe. Debe extremarse la precaución de no modificar el estado de un elemento del Set mientras permanece en él, al menos no los campos utilizados por equals; ya que esto provocaría inconsistencia entre sucesivas llamadas al método. En esta situación el comportamiento del Set no esta definido. Un Set no puede contenerse a si mismo. Debido a la forma en que hashCode es implementado ello provocaría un bucle infinito. Interfaz SortedSet Deriva del interfaz Set. Garantiza que el Iterator obtenido de la clase que lo implemente recorrerá en sentido ascendente los elementos.
  16. Colecciones en Java. TreeSet Deriva de AbstractSet e implementa SortedSet, Cloneable y Serializable. No permite duplicados pero si un único elemento nulo. Es respaldado por un TreeMap. Asegura un tiempo de ejecución log(n) para las operaciones básicas: add, remove, y size. Mantiene un orden ascendente si los elementos cuentan con ordenación natural. O bien mantiene el orden impuesto por un Comparator. Este orden ha de ser consistente con equals. Si no lo fuera, el TreeSet sigue siendo totalmente funcional pero ya no implementaría correctamente el interfaz Set. El interfaz Set esta definido en base a equals, pero un objeto TreeSet realiza todos los accesos aplicando compareTo o compare al elemento a acceder o añadir. Ambos métodos deben lanzar ClassCastException si el elemento que se pretende agregar al Set no es del tipo adecuado. El iterator de esta implementación es fallo-rápido. Esta implementación no esta sincronizada. Si se requiere, puede sincronizarse sobre el objeto que contiene al TreeSet, o bien usando Collections.synchronizedSet.
  17. Colecciones en Java. HashSet Deriva de AbstractSet e implementa Set, Serializable y Cloneable. No permite duplicados pero si un único elemento nulo. Su estructura de datos es un HashMap. Cuando un elemento nuevo pretende ser añadido se utiliza su valor hash para indexar en la estructura. Además el método equals del elemento es utilizado para determinar si el elemento nuevo es equivalente a los contenidos en el cubo “bucket” obtenido en el paso anterior. Ofrece un funcionamiento en un tiempo constante para las operaciones básicas: add, remove, size y contains. Siempre y cuando la función hash disperse los elementos adecuadamente entre los cubos. La iteración a través del HashSet es proporcional a la suma de su tamaño y su capacidad. Por lo tanto, si el tiempo de iteración es importante, no debe crearse el objeto con una capacidad elevada o un factor de carga pequeño. Esta implementación no esta sincronizada por defecto, sino que suele utilizarse el objeto que la contiene, o bien Collecctions.synchronizedSet. Su iterator es fallo-rápido.
  18. Colecciones en Java. LinkedHashSet Deriva de HashSet, además implementa las interfaces Set, Clonable y Serializable. Su estructura es la de una lista doblemente enlazada a diferencia de un HashSet. Contiene dos parámetros que afectan su funcionamiento: capacidad inicial y factor de carga. Son definidos como a un HashSet, sin embargo la penalidad al escoger un valor de exceso inicial es menor comparada a un HashSet. El funcionamiento probablemente es ligeramente debajo de él de HashSet, debido al costo añadido de mantener la lista enlazada, con una excepción: La iteración sobre un LinkedHashSet requiere el tiempo proporcional al tamaño del Set, independientemente de su capacidad. La iteración sobre un HashSet probablemente es más cara, requiriendo el tiempo proporcional a su capacidad. Esta implementación no esta sincronizada por defecto, sino que suele utilizarse el objeto que la contiene, o bien Collecctions.synchronizedSet. Su iterator es fallo-rápido.
  19. Colecciones en Java. Implementación de Mapas Map No deriva de Collection. Representa asociaciones entre parejas clave-valor. Las claves son únicas en el Map, los valores no tienen porque serlo. Una clave es asociada únicamente a un valor. Puede obtenerse una colección del tipo Set conteniendo las claves del Map, otra de las parejas clave-valor, y otra del tipo Collection (implementada por una List) de los valores. El orden del Map es aquel establecido por estas colecciones. La implementación HashMap no garantiza ningún orden, mientras que TreeMap si lo hace. Un Map no puede contenerse a sí mismo como clave, aunque podría hacerlo como valor, pero no es recomendable, puesto que equals y hashCode no serían correctamente implementados. La operación del Map resulta impredecible si el estado de un objeto utilizado como clave es modificado, de forma que afecte a las comparaciones realizadas mediante equals, mientras se encuentra en el Map. Interfaz SortedMap Deriva de Map. La claseTreeMap lo implementa. Asegura un orden en sus parejas clave-valor establecido “naturalmente” por las claves o mediante un Comparator.
  20. Interface Map public interface Map&lt;K,V&gt; { int size() ; boolean isEmpty() ; boolean containsKey(Object key) ; boolean containsValue(Object value) ; V get(Object key) ; V put(K key, V value) ; V remove(Object key) ; void putAll(Map&lt;? extends K, ? extends V&gt; t) ; void clear() ; Set&lt;K&gt; keySet() ; Collection&lt;V&gt; values() ; Set&lt;Map.Entry&lt;K, V&gt;&gt; entrySet() ; interface Entry&lt;K,V&gt; { K getKey() ; V getValue() ; V setValue(V value) ; } }
  21. Colecciones en Java. HashMap Deriva de AbstractMap e implementa Map, Serializable y Cloneable. Asocia un objeto clave a otro objeto denominado valor. No permite duplicados en la clave pero si en el valor. Tanto uno como el otro pueden ser nulos. Es una implementación basada en un tabla hash. Cuando una pareja calve-valor nueva pretende ser añadida se utiliza el valor hash de la clave para indexar en la tabla hash. Además el método equals de la clave es utilizado para determinar si el elemento nuevo es equivalente a los contenidos en el cubo “bucket” obtenido en el paso anterior. No se mantiene ningún orden entre las parejas contenidas. Ofrece un funcionamiento en un tiempo constante para las operaciones básicas: put y get. Siempre y cuando la función hash disperse las parejas adecuadamente entre los cubos. La iteración a través del HashMap es proporcional a la suma de su tamaño y su capacidad. Por lo tanto, si el tiempo de iteración es importante, no debe crearse el objeto con una capacidad elevada o un factor de carga pequeño. Si se esperan muchas adiciones a un HashMap crearlo con una capacidad adecuada evitará incrementos sucesivos en su capacidad. Esta implementación no esta sincronizada por defecto, sino que suele utilizarse el objeto que la contiene, o bien Collecctions.synchronizedMap. Todos los iterators obtenidos de las vistas del HashMap son fallo-rápido.
  22. Colecciones en Java. LinkedHashMap Conserva una secuencia entre sus elementos, pero no un orden a menos que se utilice Collections.sort. Deriva de la clase HashMap. Implementa Map. Su estructura de datos es un lista doblemente enlazada. Las operaciones de acceso posicional empiezan a recorrer la colección desde el extremo mas próximo al índice.
  23. Colecciones en Java. IdentityHashMap Esta clase implementa la interfaz Map con una tabla hash, usando la igualdad de referencia en el lugar de igualdad de objeto comparando llaves (y valores). En otras palabras, en un IdentityHashMap, dos llaves k1 y k2 son consideradas iguales si y sólo si (k1 == k2). ¿(En puestas en práctica de Map normales (como HashMap) dos llaves k1 y k2 son consideradas iguales si y sólo si ( k1 == null ? K2 = = null : K1.equals (k2) ). Esta clase no es una implementación de Map de uso general. Mientras esta clase implementa la interfaz de Map, esto intencionadamente viola el contrato general del Map, que confiere por mandato el empleo del método de igualdad comparando objetos. Esta clase es diseñada para el empleo sólo en los casos raros en el que requieren la semántica de igualdad de referencia. Esta clase proporciona todas las operaciones de map opcionales, y permite a valores nulos y la llave nula.
  24. Colecciones en Java. WeakHashMap Mantiene sus claves a través de WeakObjects. Sus valores son apuntados por referencias normales. Cuando el recolector de basuras encuentra objetos claves referidos únicamente por referencias débiles, es decir cuando las claves ya no son apuntadas por otras variables desde fuera del map, el recolector borra dichas referencias y los objetos clave pueden ser reciclados. La próxima vez se acceda al map este eliminará las entradas correspondientes a dichas claves. Por lo tanto este map se comporta como si un hilo estuviera eliminando parejas clave-valor. Por este motivo sucesivas llamadas a sus métodos podrían retornar valores inconsistentes. Esta implementación esta dirigida principalmente al uso con claves cuyo equals esta basado en ==, en vez de comparaciones sobre el estado de los objetos. Los objetos que implementan equals con comparaciones del estado de los objetos son objetos recreables. Aquellos en los que equals se basa en == no lo son. Si utilizamos objetos no recreables como claves no sería posible sorprenderse si al realizar una búsqueda de un objeto que ya fue desechado ya no lo encontrásemos en el map; el contenedor lo habría eliminado y al volver a crearlo no podríamos esperar que equals determinase equivalencia con ningún otro objeto. Por lo demás WeakHashMap es equivalente a HashMap.
  25. Colecciones en Java. TreeMap Deriva de AbstractMap e implementa SortedMap, Cloneable y Serializable. Al ser un Map también asocia parejas clave-valor. Es respaldado por un árbol Rojo-Negro. Asegura un tiempo de ejecución log(n) para las operaciones : put, get, remove y containsKey. Mantiene un orden ascendente si las claves cuentan con ordenación natural. O bien mantiene el orden impuesto por un Comparator. Este orden ha de ser consistente con equals. Si no lo fuera, el TreeMap sigue siendo totalmente funcional pero ya no implementaría correctamente el interfaz Map. El interfaz Map esta definido en base a equals, pero un objeto TreeMap realiza todos los accesos aplicando compareTo o compare a la clave a acceder o añadir. Ambos métodos deben lanzar ClassCastException si la clave que se pretende agregar al Set no es del tipo adecuado. Los Iterators que se obtienen de las vistas de esta implementación son todos fallo-rápido. Esta implementación no esta sincronizada. Si se requiere, puede sincronizarse sobre el objeto que contiene al Treemap, o bien usando Collections.synchronizedMap.
  26. Colecciones en Java. EnumMap Es una implementación de la interfaz Map que utiliza tipos Enum para el valor de las claves. Todas las llaves del Map son los valores de un solo Enum que es especificado al momento de su creación. El Map es representado como series, esta representación es sumamente compacta y eficiente. Las llaves nulas no están permitidas. Como la mayor parte de implementaciones de colección EnumMap no es sincronizado. Si múltiples hilos tienen acceso a un mapa de enum simultáneamente, y al menos uno de los hilos modifica el mapa, debería ser sincronizado por fuera.
  27. Colecciones en Java. Hashtable Deriva de java.util.Dictionary e implementa Map, Cloneable y Serializable. Dictionary es una clase abstracta y obsoleta. De hecho HashTable es otra implementación heredada desde JDK 1.1 que se mantiene por criterios de compatibilidad. HashMap o TreeeMap deberían de ser elegidos preferentemente. No permite claves o valores nulos. Los iterators obtenidos de sus vistas son fallo-rapido. Como el resto de las implementaciones heredadas esta sincronizado.
  28. Colecciones en Java. Properties Properties extiende a Hashtable. Mapa cuyos elementos están ordenados por el valores y no por claves. Define métodos para la lectura y escritura de archivos de extensión properties. Permite la lectura y escritura en XML.
  29. Colecciones en Java. Implementación de Colas La interface Queue public interface Queue&lt;E&gt; extends Collection&lt;E&gt; { boolean offer(E o) ; E poll() ; // recupera y quita la cabeza de la cola inclusive si no hay elementos E remove() ; // recuepra y quita la cabeza de la cola y causa una excepción si ya no // hay elementos E peek() ; // recupara pero no quita la cabeza de la cola, retorna null si la cola está // vacía E element() ; // recupara pero no quita la cabeza de la cola, genera una excepción si // la cola está vacía }
  30. Colecciones en Java. PriorityQueue Implementación de propósito general de una cola, extiende a AbstractQueue e implementa java.io.Serializable.
  31. Práctica 10: Uso de colecciones Objetivos Identificar las clases que comprenden el framework de colecciones de Java para la resolución de problemas en los que intervengan Listas, Conjuntos, Mapas y Colas. Hacer uso de Clases parametrizadas. Ejercicios Dado un ArrayList de números reales: Escriba un método max que nos devuelva el máximo de los valores incluidos en el ArrayList. Escriba un método min que nos devuelva el mínimo de los valores incluidos en el ArrayList. Escriba un método media que nos devuelva la media de los valores incluidos en el ArrayList. Escriba un método moda que nos devuelva la moda de los valores incluidos en el ArrayList. Implemente una clase en Java, llamada Serie, que encapsule un ArrayList de números reales e incluya métodos (no estáticos) que nos permitan calcular todos los valores mencionados en el ejercicio anterior a partir de los datos encapsulados por un objeto de tipo Serie. Lea una expresión postfija y calcule su valor numérico. Indique el movimiento a realizar en las Torres de Hanoi. Cada 3 minutos llega un equipo para ser reparado, el experto toma exactamente 4 minutos en revisarlo. Determine el número promedio de equipos en espera de ser inspeccionados, durante la primera hora. Ordene los elementos de una lista enlazada según los siguientes métodos: a) selección, b) inserción Se desea ofrecer el servicio de diccionario de términos de Ingeniería. ¿Qué clase del framework de colecciones de Java utilizaría para su implementación? Tomando como referencia el Módulo 6, que clase del framework de colecciones de Java utilizaría para representar los items de un pedido de la empresa XYZ.