Programación 3: colecciones Java

22
UNIVERSIDAD DE CUENCA Nombre: Erick Barzallo Fecha: 20/octubre/2016 Tema: Colecciones Materia: Programación 3

Transcript of Programación 3: colecciones Java

Page 1: Programación 3: colecciones Java

UNIVERSIDAD DE CUENCA

Nombre: Erick Barzallo

Fecha: 20/octubre/2016

Tema: Colecciones

Materia: Programación 3

Page 2: Programación 3: colecciones Java

INTRODUCCIÓN

• Java dispone de un conjunto de clases para la agrupación de objetos llamados Colecciones

• La organización de objetos es de forma particular como un mapa, una lista, un conjunto, entre otros.

• Son de importancia debido a la facilidad en el diseño y construcción de aplicaciones basadas en estructuras de datos

Page 3: Programación 3: colecciones Java

1. COLECCIONES EN JAVA

• Las colecciones son agrupaciones de objetos relacionados que forman una única entidad, como por ejemplo: el array, el vector, la matriz, etc.

• Incluyen: clases contenedoras para almacenar objetos, Iteradores para el acceso y algoritmos para la manipulación de los objetos

Page 4: Programación 3: colecciones Java
Page 5: Programación 3: colecciones Java

1.1. TIPOS DE COLECCIONES

• Existen 3 tipos generales de colecciones:

• Conjuntos

• Listas

• Mapas

• Los interfaces Set, List y Map, describen las características generales de estos.

Page 6: Programación 3: colecciones Java

• El diseño de estas colecciones tuvo muy en cuenta los problemas de seguridad que pudieran surgir con la ejecución de múltiples tareas

• Si varios hilos acceden a una de esas estructuras garantiza que los accesos estén sincronizados

• La declaración de métodos de la clase Stack, todos ellos con el comportamiento de sincronización son:

• Desde Java 2, se puede observar la declaración de métodos de la colección ArrayList

Page 7: Programación 3: colecciones Java

2. ARRAYS Y COLLECTIONS

• La clase Array agrupa algoritmos útiles que se aplican, en general a los Arrays de los tipos primitivos

• Collections también es una clase, pero de métodos static que implementanalgoritmos aplicados a todo tipo de colecciones

• Vector, colección histórica, diseñada para guardar objetos de cualquier tipo.

Page 8: Programación 3: colecciones Java

2.1. CLASE ARRAY

• Java incorpora esta clase para disponer de métodos que trabajen con arreglos de cualquier tipo

• Estos métodos implementan algoritmos de búsqueda, ordenación y de asignación de un valor al array completo

• No se pueden crear objetos de la clase Arrays ya que su constructor es privado

Page 9: Programación 3: colecciones Java

ORDENACIÓN DE ARRAYS

• El método de ordenación short(), esta sobrecargado, de tal forma que puede ordenar un array de cualquier tipo primitivo

• El método implementa un algoritmo de ordenación QuickSort que asegura una eficiencia n log(n)

Page 10: Programación 3: colecciones Java
Page 11: Programación 3: colecciones Java

BÚSQUEDA DE UNA CLAVE

• Se lo realiza sobre un array ordenado

• La clase array dispone del método static binarySearch(), el cual se usa para realizar búsquedas dentro del array

• EL método devuelve la posición del elemento

• El método implementa el algoritmo de búsqueda binaria con una eficiencia de log(n)

Page 12: Programación 3: colecciones Java

ASIGNACIÓN DE UN ELEMENTO

• Otra utilidad de la clase array, es el método fill()

• El método permite realizar la asignación de un elemento a todas las posiciones o bien a un rango del array

Page 13: Programación 3: colecciones Java

2.2. CLASE COLLECTIONS

• Diseñada para trabajar con colecciones List, Map, Set; en general sobre cualquier Collection

• Se encuentra en el paquete java.útil y agrupa métodos static

• Implementan algoritmos genéricos de ordenación, búsqueda, máximo y mínimo

Page 14: Programación 3: colecciones Java

ORDENACIÓN Y BÚSQUEDA

• Los métodos de ordenación se aplican a una lista cuyos elementos implementan la interfaz Comparable

• Hay una sobrecarga de métodos para realizar la comparación con la interfaz Comparator

Page 15: Programación 3: colecciones Java

MÁXIMO Y MÍNIMO

• Los métodos max(), min(), devuelven el máximo y el mínimo respectivos de una colección

• Para su operación, los elementos deben implementar la interfaz Comparable y ser mutuamente comprables

Page 16: Programación 3: colecciones Java

SINCRONIZACIÓN Y CONVERSIÓN A SOLO LECTURA

• Para la sincronización, Collections dispone de método que se aplican a cada tipo de colección

• Los métodos de conversión a solo lectura levantan una excepción UnsupportedOperationException a las operación de añadir y remover

Page 17: Programación 3: colecciones Java

UTILIDADES• La clase Collections, dispone de métodos útiles para ciertos procesos algorítmicos

• nCopies() crea una lista de n copias de un elemento

• copy() crea una lista copia de otra

• fill() rellena todos los elementos de una lista con un objeto

• reverse() invierte la posición de los elementos de una lista

• shuffle() reordena aleatoriamente los elementos de una lista

Page 18: Programación 3: colecciones Java
Page 19: Programación 3: colecciones Java

3. COMPARACIÓN DE OBJETOS: COMPARABLE Y COMPARATOR

• Numerosas operaciones con colecciones exigen que sus elementos sean comparables

• Determinar si un elemento es menor, igual o mayor que otro

• Implementando la interfaz Comparable, o bien la interfaz Comparator

Page 20: Programación 3: colecciones Java

3.1. COMPARABLE

• La interfaz Comparable se utiliza para establecer un orden natural entre los objetos de una misma clase

• Proviene del paquete java.lang

• Si el compareTo() devuelve un valor negativo, el objeto es menor. Si el valor es 0, son iguales y si devuelve un valor positivo, el objeto es mayor, todos esos comparados al paso de argumento

• Todas las clases que representan a tipos primitivos: Integer, Double, etc, y la clase String implementan la interfaz Comparable. La implementación de compareTo() en String distingue mayúsculas de minúsculas

Page 21: Programación 3: colecciones Java

3.2. COMPARATOR

• Algunos métodos de ordenación y búsqueda de objetos, usan la interfaz comparator, el cual determina el orden natural entre dos elementos

• Su interfaz se encuentra en el paquete java.útil

• El método compare() relaciona dos objetos sin necesidad que sean del mismo tipo.

• Si ob1 es menor, devuelve un valor negativo, cero si son iguales y un valor positivo si ob1 es mayor que ob2

Page 22: Programación 3: colecciones Java

BIBLIOGRAFÍA

• Joyanes, L. and Zahonero, I. (2008). Estructura de Datos en Java. 1st ed. Madrid: Mc Graw Hill, pp.488 - 498.

• Plaza, A. and Ortiz, M. ed., (2013). Programación Orientada a Objetos y UML. 1st ed. Cuenca: Abya-Yala, pp.165 - 170.