Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Programacin 1
1. Introduccin 3
2. Objetivos 4
A. Objetivo General 4
B. Objetivos Especficos 4
3. Marco Terico 5
A. Colecciones 5
Definicin 5
Aplicacin y Utilidad en Java 5
Tipos de Colecciones 5
B. Genricos en la POO 11
Definicin 11
Clases y Tipos 13
Mtodos y Constructores 15
4. Conclusiones 17
5. Referencias Bibliogrficas 18
2
1. Introduccin
Actualmente la Programacin Orientada a Objetos es un tema
que circula demasiado actualmente y que esta evolucionando de
manera exponencial de igual forma que nuevas tecnologas y
maneras mas sencillas de programar, de manera que el presente
trabajo esta enfocado en la POO como tal y nos dimos a a tarea
de lograr describir las colecciones y genricos tal y como lo
describen nuestros objetivos, desarrollar a la informacin de una
manera detallada y exacta, pero de igual forma de una manera
breve precisa y concisa para una mayor facilidad durante la
asimilacin de los conceptos y tipos. No olvidemos tambin que
con los distintos ejemplos de cdigos que tambin se pueden
implementar digitalmente desde un lenguaje de programacin
(Java en este caso) para mayor y desarrollo de la lgica del
lector.
3
2. Objetivos
A. Objetivo General
Conocer y comprender los conceptos, tipos y caractersticas de
Colecciones y Genricos de la Programacin Orientada a Objetos
utilizando el lenguaje de Java.
B. Objetivos Especficos
Destacar cada interfaz de las Colecciones y Genricos, de igual
cada un de sus caractersticas de una manera detallada.
Ejemplificar con cdigos cada una da las interfaces presentadas
segn las Colecciones y Genricos.
Aplicar y poner en prctica el contenido de esta investigacin
mediante el desarrollo de cdigos en Java.
4
3. Marco Terico
A. Colecciones
Definicin
Las colecciones son una agrupacin de objetos; de igual forma se les considera
como arrays de tamao dinmico; pero estos pueden ir variando su tamao(El
tamao se puede determinar con el mtodo .size() ), aadir y guardar
nuevos objetos de manera ordenada y/o eliminarlos. Las colecciones estn
contenidas en el paquete Java.util para gestionar colecciones de objetos.
Tipos de Colecciones
Las colecciones pueden ser, segn se almacenen los objetos, de 2 tipos:
5
En Java las principales interfaces que disponemos para trabajar con
colecciones son: Collection, Set, List, Queue y Map:
- Collection<E>: Define las operaciones comunes a todas las colecciones
de Java y permite usar colecciones basndonos en su interfaz en lugar de la
implementacin.
Ejemplo 1: Collection
6
- List<E>: Elementos en una secuencia particular que mantienen un orden y
permite duplicados. La lista puede ser recorrida en ambas direcciones con un
ListIterator.
Ejemplo 2: List
7
- ArrayList<Person>
- ArrayList<TicketMachine>
- etc.
- Vector<E>: Es igual que ArrayList, pero sincronizado. Es decir, que si
usamos varios hilos, no tendremos de qu preocuparnos hasta cierto
punto.
- LinkedList<E>: En esta, los elementos estn conectados con el
anterior y el posterior. La ventaja es que es fcil mover/eliminar
elementos de la lista, simplemente moviendo/eliminando sus referencias
hacia otros elementos. La desventaja es que para usar el elemento N de
la lista, debemos realizar N movimientos a travs de la lista.
- HashSet<T>:
Guarda los elementos del conjunto en una tabla hash.Para evitar la insercin de
elementos repetidos, la igualdad de los objetos se comprueba comparando los
hashCode, si son iguales se compara con equals().
- TreeSet<T>:
Implementacin de conjuntos ordenados basada en rboles binarios
balanceados. Para su funcionamiento es necesario definir un orden (se estudia
ms adelante). Las operaciones de bsqueda y modificacin son ms lentas en
TreeSet que en HashSet.
- SortedSet<T>:
Esta interfaz es muy similar a la interface Set tan solo se diferencia en que
SortedSet permite que los elementos dentro del conjunto de la coleccin estn
ordenados totalmente, facilitando por tanto su acceso en bsquedas y haciendo
ms rpido su consulta.Los elementos son ordenados usando su orden natural,
o bien usando un Comparator.
8
Ejemplo 3: Set (Clase Principal)
9
- Queue<E>: Coleccin ordenada con extraccin por el principio e insercin
por el principio (LIFO Last Input, First Output) o por el final (FIFO First
Input, First Output). Se permiten elementos duplicados. No da excepciones
cuando la cola est vaca/llena, hay mtodos para interrogar, que devuelven
null. Los mtodos put()/take() se bloquean hasta que hay espacio en la cola/
haya elementos. Tiene una clase asociada a la que implementa:
- PriorityQueue: Los elementos son ordenados segn su orden natural.
Ejemplo 4: Queue.
Ejemplo 5: Map.
B. Genricos en la POO
Definicin
Los generics fueron introducidos en la versin 5 de Java en 2004 junto con
otras muchas novedades suponiendo en su historia una de las mayores
modificaciones o al mismo nivel de las novedades introducidas con Java 8 ms
recientemente al lenguaje Java.
11
Los generics permiten usar tipos para parametrizar las clases, interfaces y
mtodos al definirlas. Los beneficios son:
Puntos clave:
- T es el tipo genrico que ser reemplazado por un tipo real.
- T es el nombre que damos al parmetro genrico.
- Este nombre se sustituir por el tipo real que se le pasar a la clase.
Hay que tener en cuenta que los generics de java solo funcionan con objetos. El
cdigo siguiente nos mostrar un error:
12
A pesar de los generics y el compilador es posible poner en un String en un
HashSet<Integer> usando el tipo raw de HashSet, cosa que se denomina Heap
Pollution y que provoca exepciones ClassCastException en tiempo de
ejecucin. Usando colecciones envueltas por los mtodos
Collections.checkedSet, checkedList y checkedMap evitaremos el Heap
Pollution produciendo una excepcin no en el momento de extraer el objeto de
la coleccin sino en el momento de insertarlo.
Clases y Tipos
Existen una serie de convenciones para nombrar a los genricos:
- E Element (usado bastante por Java Collections Framework)
- K Key (Llave, usado en mapas)
- N Number (para nmeros)
- T Type (Representa un tipo, es decir, una clase)
- V Value (representa el valor, tambin se usa en mapas)
- S,U,V etc. usado para representar otros tipos.
Las clases y tipos genricos son una de gran utilidad para programar ciertas
funcionalidades en en entornos de programacin mviles como Android.
En el momento de la instanciacin de un tipo genrico indicaremos el
argumento para el tipo, en este caso Box contendr una referencia a un tipo
Integer. Con Java 7 se puede usar el operador diamond y el compilador inferir
el tipo segn su definicin para mayor claridad en el cdigo. Podemos usar
cualquiera de esta dos maneras prefiriendo usar el operador diamond por ser
ms clara.
13
Adems de las clases los mtodos tambin pueden tener su propia definicin
de tipos genricos.
Una clase puede tener mltiples limitaciones, si una es una clase debe ser la
primera y el resto de argumentos interfaces.
Un tipo puede ser asignado a otro mientras el primero sea compatible con el
segundo, es decir tengan una relacin es un. Una referencia de Object puede
referenciar una instancia de Integer (un Integer es un Object).
14
Los tipos genricos pueden extenderse o implementarse y mientras no se
cambie el tipo del argumento la relacin es un se preserva. De modo que
ArrayList<String> es un subtipo de List<String> que a su vez es un subtipo de
Collection<String>.
La Clase ArrayList<E>
- Define un grupo de objetos de tipo E a los que se accede a partir del
ndice.
- Permite el crecimiento dinmico de la estructura de datos.
public class TestArrayList{
public static void main(String args[]){
List<Figura> lista = new ArrayList<Figura>();
lista.add(new Circulo());
Figura f = lista.get(0);
Circulo c = (Circulo) lista.get(0);
}}
El mtodo get puede lanzar IndexOutOfBoundsException (RuntimeException)
Mtodos y Constructores
Al igual que se definen clases genricas, es posible definir mtodos genricos
(incluso en clases no genricas).
15
Un cdigo genrico de ordenacin requiere:
- Restringir el tipo de datos de los elementos del vector a aquellos que
sean comparables.
- La clase de los elementos del vector debe implementar la interfaz
- Comparable<T>.
16
4. Conclusiones
Para concluir, con esta investigacin se demuestra que colecciones y tipos
genricos ambos similares pero cada uno con grandes diferencias. De una
manera sintetizada, las colecciones con arreglos de tamao dinmico para
crear conjuntos de datos(es decir el tamao siempre puede variar) y los tipos
genricos son clases o mtodos parametrizados que permiten al usuario
extenderse a otras clases crendolas como genricas tambin.
Las colecciones tienen 4 principales interfaces List, Set, Map y Queue; adems
estn otros tipos de interfaces pero no son muy comunes. Los tipos genricos
poseen una gran cantidad de clases y/o mtodos todos estos se pueden utilizar
importndolos desde el paquete java. e instanciando normalmente para poder
acceder a sus mtodos segn lo que el programador desea realice su cdigo.
17
5. Referencias Bibliogrficas
A. Departamento de Informtica Universidad de Murcia (2013) Colecciones en Java 4. Espaa.
B. Desconocido (2012) Colecciones y Genricos. Espaa.
C. Daniel Alfonso Caballero Cruz (2014) Desarrollo Web, Tecnologa y otras cosas. Mxico
D. Germn Molt (2015) Genericidad en Java. Espaa.
E. Hugo Robles (2016) Tutora acerca de Genricos en Java. Espaa.
F. Jon Segador (2012) Clases y Tipos Genricos. Espaa.
G. Jose I Acedo (2011) Colecciones y tipos genricos en Java. Espaa.
H. Juan Pavn Mestras (2007) Fundamentos de la Programacin Orientada a Objetos. Agrupacin
de objetos. Colecciones e iteradores. Espaa.
I. Manuel Sierra y Jos Luis Cuenca (2012) Curso Lenguaje de programacin Java Nivel Avanzado
I. Espaa
J. Oscar Garca(2013) Mtodos con Parmetros Genricos en Java. Espaa
18