apuntes:colecciones
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| apuntes:colecciones [2023/06/04 18:48] – [La clase ArrayList] Santiago Faci | apuntes:colecciones [2023/06/04 21:03] (current) – [Ejercicios] Santiago Faci | ||
|---|---|---|---|
| Line 42: | Line 42: | ||
| {{ comparison.jpg }} | {{ comparison.jpg }} | ||
| < | < | ||
| + | |||
| + | ===== Interface Collection ===== | ||
| + | |||
| + | Es la interface padre de todas las colecciones Java | ||
| + | |||
| + | Define una serie de método que cualquier colección tiene que implementar: | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * ''< | ||
| ===== Listas ===== | ===== Listas ===== | ||
| Line 207: | Line 224: | ||
| ==== Stack ==== | ==== Stack ==== | ||
| + | |||
| + | Las Pilas son colecciones de datos donde éstos se colocan // | ||
| * Implementa la interface '' | * Implementa la interface '' | ||
| * Permite manejar una lista como si se tratara de una estructura //LIFO// (Last In First Out), también conocidas como pilas. | * Permite manejar una lista como si se tratara de una estructura //LIFO// (Last In First Out), también conocidas como pilas. | ||
| * Define métodos ('' | * Define métodos ('' | ||
| + | |||
| + | === Añadir un elemento === | ||
| + | |||
| + | <code java> | ||
| + | Stack< | ||
| + | Libro libro = new Libro(. . .); | ||
| + | |||
| + | pilaLibros.push(libro); | ||
| + | </ | ||
| + | |||
| + | === Retirar un elemento de la pila === | ||
| + | |||
| + | <code java> | ||
| + | Libro libro = pilaLibros.pop(); | ||
| + | </ | ||
| + | |||
| + | === Obtener, sin retirar, el elemento de lo alto de la pila === | ||
| + | |||
| + | <code java> | ||
| + | Libro libro = pilaLibros.peek(); | ||
| + | </ | ||
| + | |||
| + | === Obtener la posición de un elemento (posicion >= 1) === | ||
| + | |||
| + | <code java> | ||
| + | int posicion = pilaLibros.search(libro); | ||
| + | </ | ||
| + | |||
| + | === Comprobar el tamaño de la pila === | ||
| + | |||
| + | <code java> | ||
| + | int tamano = pilaLibros.size(); | ||
| + | </ | ||
| + | |||
| ===== Sets ===== | ===== Sets ===== | ||
| Line 217: | Line 270: | ||
| < | < | ||
| + | ==== Set ==== | ||
| + | * Por definición no acepta elementos duplicados | ||
| + | * No define métodos nuevos, solamente implementa '' | ||
| - | ===== Queues y Maps ===== | + | ==== HashSet |
| + | * Rendimiento constante para las operaciones más habituales | ||
| + | * No garantiza el orden de los elementos de la colección | ||
| + | |||
| + | ==== LinkedHashSet ==== | ||
| + | |||
| + | Mantiene una lista doblemente enlazada por lo que puede obtenerse un iterador con el orden en que los elementos fueron añadidos a la colección | ||
| + | |||
| + | ==== EnumSet ==== | ||
| + | |||
| + | Es un Set especializado para enumeraciones | ||
| + | • El rendimiento es ligeramente inferior al de HashSet | ||
| + | |||
| + | ==== TreeSet ==== | ||
| + | |||
| + | * Garantiza el orden de los elementos | ||
| + | * Sus elementos se mantienen siempre ordenados de forma natural o por un '' | ||
| + | * Su rendimiento es el menor de todos los Sets | ||
| + | |||
| + | ===== Maps ===== | ||
| + | |||
| + | Es una colección de elementos que se encuentran mapeados por una clave (parejas clave-valor, | ||
| + | * La clave asociada a cada elemento permite recuperarlo | ||
| + | * No se permiten claves duplicadas (se sobrescribe el valor si la clave se vuelve a registrar) | ||
| + | |||
| + | < | ||
| + | {{ map.png }} | ||
| + | < | ||
| + | |||
| + | ==== Interface Map ==== | ||
| + | |||
| + | * Define una serie de método que cualquier colección tiene que implementar | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | ==== HashMap ==== | ||
| + | |||
| + | Es un mapa que proporciona rendimiento constante para las operaciones put() y get() | ||
| + | |||
| + | ==== TreeMap ==== | ||
| + | |||
| + | Es un mapa ordenado por el orden natural o Comparator que se indique en el constructor | ||
| + | |||
| + | ==== LinkedHashMap ==== | ||
| + | |||
| + | * Mantiene una lista doblemente enlazada | ||
| + | * Es posible obtener un iterador con el orden de inserción de las claves | ||
| + | |||
| + | ===== Queues ===== | ||
| + | |||
| + | Define estructuras que pueden ser gestionadas como //FIFO// (First In First Out), lo que se conoce como colas. | ||
| + | |||
| + | < | ||
| + | {{ map.png }} | ||
| + | < | ||
| + | |||
| + | ==== Interfaces Queue/Deque ==== | ||
| + | |||
| + | Define una serie de método que cualquier cola tiene que implementar | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | Además, la interfaz '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | ==== ArrayDeque ==== | ||
| + | |||
| + | Representa una cola | ||
| + | |||
| + | ==== PriorityQueue ==== | ||
| + | |||
| + | Representa una cola donde con los elementos ordenador de forma natural o según el '' | ||
| ===== La clase HashMap ===== | ===== La clase HashMap ===== | ||
| Line 268: | Line 409: | ||
| <code java> | <code java> | ||
| Set< | Set< | ||
| - | < | + | </code> |
| === Obtener el número de elementos del HashMap === | === Obtener el número de elementos del HashMap === | ||
| Line 276: | Line 417: | ||
| </ | </ | ||
| - | ===== Las Pilas ===== | ||
| - | |||
| - | Las Pilas son colecciones de datos donde éstos se colocan // | ||
| - | |||
| - | === Añadir un elemento === | ||
| - | |||
| - | <code java> | ||
| - | Stack< | ||
| - | Libro libro = new Libro(. . .); | ||
| - | |||
| - | pilaLibros.push(libro); | ||
| - | </ | ||
| - | |||
| - | === Retirar un elemento de la pila === | ||
| - | |||
| - | <code java> | ||
| - | Libro libro = pilaLibros.pop(); | ||
| - | </ | ||
| - | |||
| - | === Obtener, sin retirar, el elemento de lo alto de la pila === | ||
| - | |||
| - | <code java> | ||
| - | Libro libro = pilaLibros.peek(); | ||
| - | </ | ||
| - | |||
| - | === Obtener la posición de un elemento (posicion >= 1) === | ||
| - | |||
| - | \begin{lstlisting}[language=java] | ||
| - | int posicion = pilaLibros.search(libro); | ||
| - | \end{lstlisting} | ||
| - | |||
| - | === Comprobar el tamaño de la pila === | ||
| - | |||
| - | <code java> | ||
| - | int tamano = pilaLibros.size(); | ||
| - | </ | ||
| ===== Las Colas ===== | ===== Las Colas ===== | ||
| Line 319: | Line 424: | ||
| En Java, la clase '' | En Java, la clase '' | ||
| - | ---- | + | ====== Ejercicios ====== |
| + | |||
| + | {{ ejercicio.png}} | ||
| - | ====== Ejemplos ====== | + | - Elige el tipo de colección más adecuado para cada caso: |
| + | - Se quiere almacenar un listado de productos de una tienda online al recuperarlos de una base de datos | ||
| + | - Ahora tenemos que tener en cuenta que el usuario puede modificar los criterios de ordenación del listado anterior | ||
| + | - Un usuario va añadiendo productos a un carrito de la compra que más adelante tendrá que validar | ||
| + | - Un usuario añade varias direcciones de entrega asociadas a su perfil | ||
| + | - Recuperamos de la base de datos la información del perfil de un usuario (con sus múltiples direcciones de entrega) | ||
| ---- | ---- | ||
| (c) 2019-{{date> | (c) 2019-{{date> | ||
apuntes/colecciones.1685904538.txt.gz · Last modified: by Santiago Faci
