SlideShare una empresa de Scribd logo
1 de 30
Colecciones en Java
Por: Jahyr Moreno
¿Qué son y para que sirven las
colecciones?
Colección
? Almacén de
objetos,
dinámico
Ventajas con respecto a los arrays:
• Pueden cambiar de tamaño
dinámicamente.
• Pueden ir provistas de ordenamiento.
• Se pueden insertar y eliminar
elementos.
Colección
Tipos de Colecciones
Collection
I
Set
I
SortedSet
I
List
I
Queue
I
Map
I
SortedMap
I
Listas. Clases utilizadas
Collection
I
List
I
ArrayList
c
LinkedList
c
Vector
c
CopyOnWriteArrayList
c
Ventajas
• Acceso aleatorio
• Están ordenados
(collection.sort() ).
• Añadir/eliminar sin restricción.
• ListIterador se modifica en
cualquier dirección.
• Sintaxis similar a Arrays.
Inconvenientes:
• Bajo rendimiento en
operaciones concretas
que se resolverían mejor
con otras interfaces.
Listas. Clases utilizadas
ArrayList
c
LinkedList
c
Vector
c
CopyOnWriteArrayList
c
• Muy rápida
accediendo a
elementos.
• Se adapta a un
gran número
de escenarios.
• Listas
enlazadas
• Gran eficiencia
agregando y
eliminando
elementos.
• Considerada
como
colección
obsoleta.
• Utilizada
únicamente en
operaciones de
concurrencia.
• Utilizada en
programas
concurrentes.
• Eficiente en
operaciones de
lectura pero muy
poco eficiente en
operaciones de
escritura.
Sets. Clases utilizadas
Collection
I
Set
I
HashSet
C
LinkedHash
Set
C
TreeSet
C
EnumSet
C
CopyOnWrite
ArraySet
C
ConcurredSkip
ListSet
C
Ventajas
• No permiten elementos
duplicados.
• Uso sencillo del método add
que además asegura no
elementos duplicados.
Inconvenientes:
• No tienen acceso
aleatorio
• Poca eficiencia a la hora
de ordenar elementos (Y
no siempre se puede)
Sets. Clases utilizadas
HashSet
C
LinkedHash
Set
C
TreeSet
C
EnumSet
C
CopyOnWrite
ArraySet
C
ConcurredSkip
ListSet
C
• Rápida
• No
duplicados.
• No
ordenación.
• No acceso
aleatorio.
• Ordenación
por entrada
• Eficiente al
acceder
• No eficiente
al agregar
• Es ordenado
• Poco
eficiente
• La mejor
para tipos
enumerados
• Específico
concurrencia
• Eficiente
lectura
• Poca
eficiente
escritura
• Poco
eficiente al
eliminar
• Específico
concurrencia
• Admite
ordenación
• Con muchos
elementos
no es
eficiente.
Queues (Colas). Clases utilizadas
Collection
I
Queue
I
ArrayDeque
C
LinkedBlocking
Deque
C
LinkedList
C
PriorityQueue
C
PriorityBlocking
Queue
C
Ventajas
• Muy rápido al acceder al primer y
último elemento.
• Permite crear colas de elementos
muy eficientes. (LIFO/FIFO.
Inconvenientes:
• Acceso lento a los
elementos intermedios.
Queues (Colas). Clases utilizadas
ArrayDeque
C
LinkedBlocking
Deque
C
LinkedList
C
PriorityQueue
C
PriorityBlocking
Queue
C
• Gran eficiencia.
• La más utilizada.
• Utilizado en
programación
concurrente.
• Rendimiento
inferior al
ArrayDeque
• Para utilizar un
Comparator.
• El primer
elemento
depend
• Igual que el
anterior pero
más eficiente en
programación
concurrente.
Maps. Clases utilizadas
Collection
I
Map
I
HashMap
C
LinkedHash
Map
C
TreeMap
C
EnumMap
C
WeakHashMap
C
HashTable
C
CocurrentHash
Map
C
Ventajas
• Asociacón Clave-Valor
• No claves iguales.
Inconvenientes:
• Poca eficiencia
comparado con las
dempas colecciones.
Maps. Clases utilizadas
HashMap
C
LinkedHash
Map
C
TreeMap
C
EnumMap
C
WeakHashMap
C
HashTable
C
CocurrentHash
Map
C
• No
ordenación
• Eficiente
• Ordenación
por
inserción
• Permite
ordenación
por uso.
• Eficiente
lectura.
• Poca
eficiente
escritura.
• Ordenación
por clave
• Poco
eficiente en
todas sus
operaciones.
• Permite
enum
como
claves.
• Muy
eficiente.
• Utilizado
para crear
elementos
que vaya
borrando
el sistema
si no se
utilizan.
• Muy poco
eficiente.
• Considerado
obsoleto.
• Utilizado en
operaciones
de
concurrencia.
• Utilizado en
concurrencia.
• No permite
nulos.
Clase de Utilidades: Arrays Y
Collections
Arrays Collections
• La clase Collections también es
una clase de utilidades, de métodos
abstractos static que
implementan algoritmos aplicados a
todo tipo de colecciones.
• La clase Arrays agrupa algoritmos
útiles que se aplican, en general, a
arrays.
• Java incorpora la clase Arrays para disponer de métodos que trabajen con arrays
(vectores). Estos métodos implementan algoritmos de búsqueda, ordenación y
de asignación. Ejemplos:
- Ordenación de Arrays:
El método de ordenación, sort(), está sobrecargado, de tal forma que se puede
ordenar un array de cualquier tipo primitivo y , en general de tipo Object sort().
NOTA:
Para ordenar un array de objetos los
elementos deben de implementar la interfaz
Comparable
ya que el criterio de ordenación está
determinado por el método:
int compareTo(Object a);
Clase Arrays
Clase Arrays
Clase Arrays
• Búsqueda de una clave:
La operación de búsqueda se realiza sobre un array ordenado. La clase array
dispone del método static binarySearch() para realizar la búsqueda de un
elemento en un array.
• Asignación de un elemento:
Otra utilidad de la clase Arrays es el método fill() para asignar un elemento a
todas las posiciones de un array, o solo a un rango del array.
Clase Collection
• Esta clase se encuentra en el paquete java.util y está diseñada para trabajar con colecciones: List, Map, Set; en
general sobre cualquier Collection. Agrupa métodos static que implementan algoritmos genéricos de ordenación,
búsqueda, máximo y mínimo. Así como para dar las características de sincronización y de solo lectura de las
colecciones. Ejemplos:
• Ordenación y búsqueda:
Se aplican a una lista cuyos elementos implementan la interfaz Comparable y que permite que se puedan
comparar mutuamente.
• Máximo y mínimo:
Los métodos max() y min() devuelven el máximo y el mínimo respectivamente, de una colección. Para que se
pueda realizar la operación, todos los elementos de implementar la interfaz Comparable y ser mutuamente
comparables.
Clase Collection
Clase Collection
• Sincronización:
Para añadir la cualidad de sincronización a las colecciones, Collections dispone de métodos que se aplican a
cada tipo de colección:
• Conversión a solo lectura:
Estos métodos convierte la colección al modo sólo lectura, ya no se pueden agregar o eliminar elementos.
• Utilidades:La clase Collections dispone de métodos útiles para ciertos procesos algorítmicos.
Comparación de Objetos: Comparable y
Comparator
• Comparable
La interfaz Comparable se utiliza para establecer un orden natural entre los
objetos de una misma clase. La declaración de la interfaz (paquete java.lang) es:
• Si compareTo() devuelve un valor negativo significa que el objeto que llama al
método es menor que el pasado en el argumento; si devuelve 0 significa que son
iguales, y si devuelve un valor positivo el objeto que llama al método es mayor
que el pasado en el argumento. Como se puede apreciar el programador de la
clase define la forma de comparar números racionales.
Integer Double String
Comparación de Objetos: Comparable y
Comparator
Comparación de Objetos: Comparable y
Comparator
• Comparator
Hay métodos de ordenación y búsqueda de objetos que utilizan la interfaz
Comparator para determinar el orden natural entre dos elementos. Su interfaz se
encuentra en el paquete java.util. Su declaración es la siguiente.
• El método compare() relaciona dos objetos, no necesariamente del mismo tipo.
Devolverá un valor negativo si el objeto ob1 es menor que el segundo objeto,
cero si son iguales, y valor positivo si ob1 es mayor que ob2. El comportamiento
de compare() tiene que ser compatible con el resultado del método
equals(); es decir, si este devuelve true, compare() tendrá que devolver 0.
Vector y Stack
• Vector
El comportamiento de una colección Vector se asemeja a la de un array, con la característica de que
no es necesario controlar su tamaño, ya que, si fuera necesario automáticamente dicho tamaño
aumenta.
• La plataforma Java 5 permite, también, establecer el tipo concreto de elemento que puede
guardar una colección, y en particular un vector Por ejemplo:
• Sin embargo, si la declaración es la siguiente:
Vector y Stack
Vector y Stack
• Stack
La clase Stack hereda el comportamiento de una colección vector y además define las operaciones del tipo
abstracto Pila (último en entrar primero en salir). Todas las operaciones se realizan por un único punto, el final
(cabeza o top) de la pila. La declaración de Stack es la siguiente:
• Los elementos que almacena una colección stack son de tipo genérico (tipo Object), esto hace necesario
realizar conversión de tipo cuando se extraen. La plataforma Java 5 permite parametrizar el tipo de los
elementos que guarda el stack, de tal forma que el compilador verifica el tipo.
Bibliografía
• Joyanes, L., (2008). Estructuras de datos en Java. Aravaca, España: MCGRAW-
HILL/INTERAMERICANA DE ESPAÑA, S. A. U.
• [pildorasinformáticas]. (2015, Octubre 9). Curso Java. Colecciones I. Vídeo
179 [Archivo de video]. Recuperado de https://www.youtube.com/watch?v=bTu-
fz1JmWQ&t=622s
• Vindel, R. (2015-2017). Introducción a Colecciones en Java. Madrid:
AdictosAlTrabajo.com. Recuperdado de
https://www.adictosaltrabajo.com/tutoriales/introduccion-a-colecciones-en-java/
Gracias!

Más contenido relacionado

La actualidad más candente

Ordenamiento en C++
Ordenamiento en C++Ordenamiento en C++
Ordenamiento en C++compumet sac
 
Modelo Entidad Relación Extendido.
Modelo Entidad Relación Extendido.Modelo Entidad Relación Extendido.
Modelo Entidad Relación Extendido.nayis2010
 
Método de ordenamiento por selección (selection sort
Método de ordenamiento por selección (selection sortMétodo de ordenamiento por selección (selection sort
Método de ordenamiento por selección (selection sortlinkinpark03
 
Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)Juan Astudillo
 
Polimorfismo y Clases Abstractas
Polimorfismo y Clases AbstractasPolimorfismo y Clases Abstractas
Polimorfismo y Clases Abstractascodigosyalgomas
 
Herencia y Polimorfismo
Herencia y PolimorfismoHerencia y Polimorfismo
Herencia y Polimorfismonestor_moren
 
1. introduccion a la programación orientada a objeto (poo)
1.  introduccion a la programación orientada a objeto (poo)1.  introduccion a la programación orientada a objeto (poo)
1. introduccion a la programación orientada a objeto (poo)Roberto Rojas
 
Colecciones en Java
Colecciones en JavaColecciones en Java
Colecciones en JavaRonny Parra
 
Tipos de atributos y tipos de relaciones
Tipos de atributos y tipos de relacionesTipos de atributos y tipos de relaciones
Tipos de atributos y tipos de relacionesbasilioj
 

La actualidad más candente (20)

Estructura datos pilas y colas
Estructura datos pilas y colasEstructura datos pilas y colas
Estructura datos pilas y colas
 
Comparativa entre Algoritmos de Ordenamiento
Comparativa entre Algoritmos de OrdenamientoComparativa entre Algoritmos de Ordenamiento
Comparativa entre Algoritmos de Ordenamiento
 
Mergesort
MergesortMergesort
Mergesort
 
Estructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busquedaEstructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busqueda
 
Ordenamiento en C++
Ordenamiento en C++Ordenamiento en C++
Ordenamiento en C++
 
Modelo Entidad Relación Extendido.
Modelo Entidad Relación Extendido.Modelo Entidad Relación Extendido.
Modelo Entidad Relación Extendido.
 
Método de ordenamiento por selección (selection sort
Método de ordenamiento por selección (selection sortMétodo de ordenamiento por selección (selection sort
Método de ordenamiento por selección (selection sort
 
Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)
 
Listas,pilas y colas Estructura de Datos
Listas,pilas y colas Estructura de DatosListas,pilas y colas Estructura de Datos
Listas,pilas y colas Estructura de Datos
 
Polimorfismo y Clases Abstractas
Polimorfismo y Clases AbstractasPolimorfismo y Clases Abstractas
Polimorfismo y Clases Abstractas
 
6 Curso de POO en Java - clases y objetos
6  Curso de POO en Java - clases y objetos6  Curso de POO en Java - clases y objetos
6 Curso de POO en Java - clases y objetos
 
Clases y Objetos
Clases y ObjetosClases y Objetos
Clases y Objetos
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 
Algoritmo de ordenamiento: Heap Sort
Algoritmo de ordenamiento: Heap SortAlgoritmo de ordenamiento: Heap Sort
Algoritmo de ordenamiento: Heap Sort
 
Ordenamiento por seleccion
Ordenamiento por seleccionOrdenamiento por seleccion
Ordenamiento por seleccion
 
Herencia y Polimorfismo
Herencia y PolimorfismoHerencia y Polimorfismo
Herencia y Polimorfismo
 
1. introduccion a la programación orientada a objeto (poo)
1.  introduccion a la programación orientada a objeto (poo)1.  introduccion a la programación orientada a objeto (poo)
1. introduccion a la programación orientada a objeto (poo)
 
Colecciones en Java
Colecciones en JavaColecciones en Java
Colecciones en Java
 
Arreglos bidimensionales
Arreglos bidimensionalesArreglos bidimensionales
Arreglos bidimensionales
 
Tipos de atributos y tipos de relaciones
Tipos de atributos y tipos de relacionesTipos de atributos y tipos de relaciones
Tipos de atributos y tipos de relaciones
 

Similar a Colecciones en java

Tema 6 colecciones por gio
Tema 6   colecciones por gioTema 6   colecciones por gio
Tema 6 colecciones por gioRobert Wolf
 
DAW - Estructuras de almacenamiento
DAW - Estructuras de almacenamientoDAW - Estructuras de almacenamiento
DAW - Estructuras de almacenamientovay82
 
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
 
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
 
Programación 3: arrays (arreglos) y vectores
Programación 3: arrays (arreglos) y vectoresProgramación 3: arrays (arreglos) y vectores
Programación 3: arrays (arreglos) y vectoresAngel Vázquez Patiño
 
Vectores, array y sus métodos
Vectores, array y sus métodosVectores, array y sus métodos
Vectores, array y sus métodosOrlando Verdugo
 
Introducción a la programación y la informática. Tema 10
Introducción a la programación y la informática. Tema 10Introducción a la programación y la informática. Tema 10
Introducción a la programación y la informática. Tema 10Andres Garcia Garcia
 
[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
 

Similar a Colecciones en java (20)

Programación 3: colecciones Java
Programación 3: colecciones JavaProgramación 3: colecciones Java
Programación 3: colecciones Java
 
Tema 6 colecciones por gio
Tema 6   colecciones por gioTema 6   colecciones por gio
Tema 6 colecciones por gio
 
DAW - Estructuras de almacenamiento
DAW - Estructuras de almacenamientoDAW - Estructuras de almacenamiento
DAW - Estructuras de almacenamiento
 
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)
 
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
 
Jyoc java-cap11 colecciones
Jyoc java-cap11 coleccionesJyoc java-cap11 colecciones
Jyoc java-cap11 colecciones
 
Colecciones
ColeccionesColecciones
Colecciones
 
Pilas y matrices (Stacks y Arrays) - Small Basic
Pilas y matrices (Stacks y Arrays) - Small BasicPilas y matrices (Stacks y Arrays) - Small Basic
Pilas y matrices (Stacks y Arrays) - Small Basic
 
colecciones en java
colecciones en javacolecciones en java
colecciones 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
 
Programación 3: arrays (arreglos) y vectores
Programación 3: arrays (arreglos) y vectoresProgramación 3: arrays (arreglos) y vectores
Programación 3: arrays (arreglos) y vectores
 
Vectores, array y sus métodos
Vectores, array y sus métodosVectores, array y sus métodos
Vectores, array y sus métodos
 
Biblioteca
BibliotecaBiblioteca
Biblioteca
 
Colecciones en Scala
Colecciones en ScalaColecciones en Scala
Colecciones en Scala
 
Uml diagrama clase objeto
Uml diagrama clase objetoUml diagrama clase objeto
Uml diagrama clase objeto
 
Tema6
Tema6Tema6
Tema6
 
Uml diagrama claseobjeto
Uml diagrama claseobjetoUml diagrama claseobjeto
Uml diagrama claseobjeto
 
Introducción a la programación y la informática. Tema 10
Introducción a la programación y la informática. Tema 10Introducción a la programación y la informática. Tema 10
Introducción a la programación y la informática. Tema 10
 
[ES] Colecciones y estructura de iteracion
[ES] Colecciones y estructura de iteracion[ES] Colecciones y estructura de iteracion
[ES] Colecciones y estructura de iteracion
 

Colecciones en java

  • 2. ¿Qué son y para que sirven las colecciones? Colección ? Almacén de objetos, dinámico Ventajas con respecto a los arrays: • Pueden cambiar de tamaño dinámicamente. • Pueden ir provistas de ordenamiento. • Se pueden insertar y eliminar elementos. Colección
  • 4. Listas. Clases utilizadas Collection I List I ArrayList c LinkedList c Vector c CopyOnWriteArrayList c Ventajas • Acceso aleatorio • Están ordenados (collection.sort() ). • Añadir/eliminar sin restricción. • ListIterador se modifica en cualquier dirección. • Sintaxis similar a Arrays. Inconvenientes: • Bajo rendimiento en operaciones concretas que se resolverían mejor con otras interfaces.
  • 5. Listas. Clases utilizadas ArrayList c LinkedList c Vector c CopyOnWriteArrayList c • Muy rápida accediendo a elementos. • Se adapta a un gran número de escenarios. • Listas enlazadas • Gran eficiencia agregando y eliminando elementos. • Considerada como colección obsoleta. • Utilizada únicamente en operaciones de concurrencia. • Utilizada en programas concurrentes. • Eficiente en operaciones de lectura pero muy poco eficiente en operaciones de escritura.
  • 6. Sets. Clases utilizadas Collection I Set I HashSet C LinkedHash Set C TreeSet C EnumSet C CopyOnWrite ArraySet C ConcurredSkip ListSet C Ventajas • No permiten elementos duplicados. • Uso sencillo del método add que además asegura no elementos duplicados. Inconvenientes: • No tienen acceso aleatorio • Poca eficiencia a la hora de ordenar elementos (Y no siempre se puede)
  • 7. Sets. Clases utilizadas HashSet C LinkedHash Set C TreeSet C EnumSet C CopyOnWrite ArraySet C ConcurredSkip ListSet C • Rápida • No duplicados. • No ordenación. • No acceso aleatorio. • Ordenación por entrada • Eficiente al acceder • No eficiente al agregar • Es ordenado • Poco eficiente • La mejor para tipos enumerados • Específico concurrencia • Eficiente lectura • Poca eficiente escritura • Poco eficiente al eliminar • Específico concurrencia • Admite ordenación • Con muchos elementos no es eficiente.
  • 8. Queues (Colas). Clases utilizadas Collection I Queue I ArrayDeque C LinkedBlocking Deque C LinkedList C PriorityQueue C PriorityBlocking Queue C Ventajas • Muy rápido al acceder al primer y último elemento. • Permite crear colas de elementos muy eficientes. (LIFO/FIFO. Inconvenientes: • Acceso lento a los elementos intermedios.
  • 9. Queues (Colas). Clases utilizadas ArrayDeque C LinkedBlocking Deque C LinkedList C PriorityQueue C PriorityBlocking Queue C • Gran eficiencia. • La más utilizada. • Utilizado en programación concurrente. • Rendimiento inferior al ArrayDeque • Para utilizar un Comparator. • El primer elemento depend • Igual que el anterior pero más eficiente en programación concurrente.
  • 10. Maps. Clases utilizadas Collection I Map I HashMap C LinkedHash Map C TreeMap C EnumMap C WeakHashMap C HashTable C CocurrentHash Map C Ventajas • Asociacón Clave-Valor • No claves iguales. Inconvenientes: • Poca eficiencia comparado con las dempas colecciones.
  • 11. Maps. Clases utilizadas HashMap C LinkedHash Map C TreeMap C EnumMap C WeakHashMap C HashTable C CocurrentHash Map C • No ordenación • Eficiente • Ordenación por inserción • Permite ordenación por uso. • Eficiente lectura. • Poca eficiente escritura. • Ordenación por clave • Poco eficiente en todas sus operaciones. • Permite enum como claves. • Muy eficiente. • Utilizado para crear elementos que vaya borrando el sistema si no se utilizan. • Muy poco eficiente. • Considerado obsoleto. • Utilizado en operaciones de concurrencia. • Utilizado en concurrencia. • No permite nulos.
  • 12. Clase de Utilidades: Arrays Y Collections Arrays Collections • La clase Collections también es una clase de utilidades, de métodos abstractos static que implementan algoritmos aplicados a todo tipo de colecciones. • La clase Arrays agrupa algoritmos útiles que se aplican, en general, a arrays.
  • 13. • Java incorpora la clase Arrays para disponer de métodos que trabajen con arrays (vectores). Estos métodos implementan algoritmos de búsqueda, ordenación y de asignación. Ejemplos: - Ordenación de Arrays: El método de ordenación, sort(), está sobrecargado, de tal forma que se puede ordenar un array de cualquier tipo primitivo y , en general de tipo Object sort(). NOTA: Para ordenar un array de objetos los elementos deben de implementar la interfaz Comparable ya que el criterio de ordenación está determinado por el método: int compareTo(Object a); Clase Arrays
  • 15. Clase Arrays • Búsqueda de una clave: La operación de búsqueda se realiza sobre un array ordenado. La clase array dispone del método static binarySearch() para realizar la búsqueda de un elemento en un array. • Asignación de un elemento: Otra utilidad de la clase Arrays es el método fill() para asignar un elemento a todas las posiciones de un array, o solo a un rango del array.
  • 16.
  • 17. Clase Collection • Esta clase se encuentra en el paquete java.util y está diseñada para trabajar con colecciones: List, Map, Set; en general sobre cualquier Collection. Agrupa métodos static que implementan algoritmos genéricos de ordenación, búsqueda, máximo y mínimo. Así como para dar las características de sincronización y de solo lectura de las colecciones. Ejemplos: • Ordenación y búsqueda: Se aplican a una lista cuyos elementos implementan la interfaz Comparable y que permite que se puedan comparar mutuamente. • Máximo y mínimo: Los métodos max() y min() devuelven el máximo y el mínimo respectivamente, de una colección. Para que se pueda realizar la operación, todos los elementos de implementar la interfaz Comparable y ser mutuamente comparables.
  • 19. Clase Collection • Sincronización: Para añadir la cualidad de sincronización a las colecciones, Collections dispone de métodos que se aplican a cada tipo de colección: • Conversión a solo lectura: Estos métodos convierte la colección al modo sólo lectura, ya no se pueden agregar o eliminar elementos. • Utilidades:La clase Collections dispone de métodos útiles para ciertos procesos algorítmicos.
  • 20.
  • 21. Comparación de Objetos: Comparable y Comparator • Comparable La interfaz Comparable se utiliza para establecer un orden natural entre los objetos de una misma clase. La declaración de la interfaz (paquete java.lang) es: • Si compareTo() devuelve un valor negativo significa que el objeto que llama al método es menor que el pasado en el argumento; si devuelve 0 significa que son iguales, y si devuelve un valor positivo el objeto que llama al método es mayor que el pasado en el argumento. Como se puede apreciar el programador de la clase define la forma de comparar números racionales. Integer Double String
  • 22. Comparación de Objetos: Comparable y Comparator
  • 23. Comparación de Objetos: Comparable y Comparator • Comparator Hay métodos de ordenación y búsqueda de objetos que utilizan la interfaz Comparator para determinar el orden natural entre dos elementos. Su interfaz se encuentra en el paquete java.util. Su declaración es la siguiente. • El método compare() relaciona dos objetos, no necesariamente del mismo tipo. Devolverá un valor negativo si el objeto ob1 es menor que el segundo objeto, cero si son iguales, y valor positivo si ob1 es mayor que ob2. El comportamiento de compare() tiene que ser compatible con el resultado del método equals(); es decir, si este devuelve true, compare() tendrá que devolver 0.
  • 24.
  • 25. Vector y Stack • Vector El comportamiento de una colección Vector se asemeja a la de un array, con la característica de que no es necesario controlar su tamaño, ya que, si fuera necesario automáticamente dicho tamaño aumenta. • La plataforma Java 5 permite, también, establecer el tipo concreto de elemento que puede guardar una colección, y en particular un vector Por ejemplo: • Sin embargo, si la declaración es la siguiente:
  • 27. Vector y Stack • Stack La clase Stack hereda el comportamiento de una colección vector y además define las operaciones del tipo abstracto Pila (último en entrar primero en salir). Todas las operaciones se realizan por un único punto, el final (cabeza o top) de la pila. La declaración de Stack es la siguiente: • Los elementos que almacena una colección stack son de tipo genérico (tipo Object), esto hace necesario realizar conversión de tipo cuando se extraen. La plataforma Java 5 permite parametrizar el tipo de los elementos que guarda el stack, de tal forma que el compilador verifica el tipo.
  • 28.
  • 29. Bibliografía • Joyanes, L., (2008). Estructuras de datos en Java. Aravaca, España: MCGRAW- HILL/INTERAMERICANA DE ESPAÑA, S. A. U. • [pildorasinformáticas]. (2015, Octubre 9). Curso Java. Colecciones I. Vídeo 179 [Archivo de video]. Recuperado de https://www.youtube.com/watch?v=bTu- fz1JmWQ&t=622s • Vindel, R. (2015-2017). Introducción a Colecciones en Java. Madrid: AdictosAlTrabajo.com. Recuperdado de https://www.adictosaltrabajo.com/tutoriales/introduccion-a-colecciones-en-java/