Manuales lenguaje de programación java el lenguaje de programación java nxt
Programación 3: colecciones Java
-
Upload
angel-vazquez-patino -
Category
Engineering
-
view
376 -
download
7
Transcript of Programación 3: colecciones Java
UNIVERSIDAD DE CUENCA
Nombre: Erick Barzallo
Fecha: 20/octubre/2016
Tema: Colecciones
Materia: Programación 3
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
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
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.
• 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
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.
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
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)
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)
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
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
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
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
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
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
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
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
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
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.