En un post anterior habíamos visto los Arrays que nos obligaban a manejar un número fijo de elementos. Se inicializan con una dimensión fija que luego no podemos modificar durante la ejecución del programa.
Java proporciona otro tipo de Clases más flexibles y con ventajas sobre los arrays que son las Colecciones. Con estas vamos a poder trabajar, abstrayéndonos del índice y manejando un número de elementos variable durante la ejecución del programa.
Hay varias clases interesantes para trabajar con colecciones y todas extienden de la clase padre Collection.
Listas en Java: List y Set
El primer tipo de Colecciones que vamos a ver son las listas, en las que manejaremos un conjunto de objetos. El número de objetos de la lista no hay que definirlo por código, como ocurría con los arrays, sino que cambiara en tiempo de ejecución, iremos añadiendo o eliminando elementos de la misma.
Vamos a distinguir dos tipos de listas: List y Set. La diferencia entre ambas es que la primera admite valores repetidos, mientras que la segunda no los admite.
Wrappers
Habrás observado que hablo de listas de objetos y no de variables, esto es porque no se pueden manejar listas con tipos primitivos: char, int, float. Para solucionar este tema, se crearon unos objetos basados en los tipos primitivos, que se nombran de forma similar al tipo primitivo, pero con la primera letra en mayúsculas. A estos objetos se les denomina Wrappers y con ellos, si podemos trabajar con listas
Aquí dejo una tabla con esto objetos:
| Tipo primitivo | Wrappers |
|---|---|
| byte | Byte |
| short | Short |
| int | Integer |
| long | Long |
| float | Float |
| double | Double |
| boolean | Boolean |
| char | Character |
Mapas en Java: estructuras clave – valor
El segundo tipo de colección en Java que veremos son los Mapas. Estos son colecciones de parejas clave-valor. Podría decirse que son como los arrays pero en lugar de usar un índice consecutivo que marca la posición del elemento en el array, vamos a utilizar una clave asociada a cada elemento.
La clase HashMap es la representativa de este tipo de Colecciones
Colas y Pilas en Java
Finalmente hablare de las Colas y las pilas en Java. Una cola es una estructura de datos que sigue el principio FIFO (First In, First Out), es decir, el primero que llega es el primero que sale. Una pila sigue el principio LIFO (Last In, First Out), el último que llego es el primero que sale.
La clase representativa de las colas es LinkedList y la de las pilas Stack.
Un ejemplo clásico de una cola sería la cola de impresión de una impresora. Los documentos son impresos según el orden de llegada.
Un ejemplo de pila sería la navegación por Internet en el navegador. La última página vista es la primera que se cierra dejando a la vista la inmediatamente anterior.
NOTA:
Este post es parte de la colección “Java”. Puedes ver el índice de esta colección aquí.