Programación

1º DAM/DAW - Curso 2024-2025

User Tools

Site Tools


apuntes:colecciones

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
apuntes:colecciones [2023/06/04 18:58] – [Interface Map] Santiago Faciapuntes:colecciones [2023/06/04 21:03] (current) – [Ejercicios] Santiago Faci
Line 296: Line 296:
  
 ===== Maps ===== ===== Maps =====
 +
 +Es una colección de elementos que se encuentran mapeados por una clave (parejas clave-valor, key-value, K, V):
 +  * La clave asociada a cada elemento permite recuperarlo
 +  * No se permiten claves duplicadas (se sobrescribe el valor si la clave se vuelve a registrar)
  
 <figure> <figure>
Line 304: Line 308:
  
   * Define una serie de método que cualquier colección tiene que implementar   * Define una serie de método que cualquier colección tiene que implementar
-    * void clear() +    * ''void clear()'' 
-    * boolean containsKey() +    * ''boolean containsKey()'' 
-    * boolean containsValue() +    * ''boolean containsValue()'' 
-    * boolean isEmpty() +    * ''boolean isEmpty()'' 
-    * Set<K> keySet() +    * ''Set<K> keySet()'' 
-    * V put(K, V) +    * ''V put(K, V)'' 
-    * V remove(K) +    * ''V remove(K)'' 
-    * V replace(K, V) +    * ''V replace(K, V)'' 
-    * int size() +    * ''int size()'' 
-    * Collection<V> values()+    * ''Collection<V> values()''
  
 ==== HashMap ==== ==== HashMap ====
Line 330: Line 334:
 ===== Queues ===== ===== Queues =====
  
 +Define estructuras que pueden ser gestionadas como //FIFO// (First In First Out), lo que se conoce como colas.
 +
 +<figure>
 +{{ map.png }}
 +<caption>Colecciones Map</caption></figure>
 +
 +==== Interfaces Queue/Deque ====
 +
 +Define una serie de método que cualquier cola tiene que implementar
 +  * ''boolean add(e)''
 +  * ''E peek()''
 +  * ''E poll()''
 +
 +Además, la interfaz ''Deque'', que extiende a ''Queue'', y añade elementos para añadir y obtener elementos del inicio y el final:
 +  * ''void addFirst(e)''
 +  * ''void addLast(e)''
 +  * ''E getFirst()''
 +  * ''E getLast()''
 +  * ''E removeFirst()''
 +  * ''E removeLast()''
 +
 +==== ArrayDeque ====
 +
 +Representa una cola
 +
 +==== PriorityQueue ====
 +
 +Representa una cola donde con los elementos ordenador de forma natural o según el ''Comparator'' que se le pasa a su constructor
  
 ===== La clase HashMap ===== ===== La clase HashMap =====
Line 377: Line 409:
 <code java> <code java>
 Set<String> losTitulos = libros.keySet(); Set<String> losTitulos = libros.keySet();
-<code java>+</code>
  
 === Obtener el número de elementos del HashMap === === Obtener el número de elementos del HashMap ===
Line 392: Line 424:
 En Java, la clase ''LinkedList'' implementa el interfaz ''Queue'' y proporciona una cola FIFO a través de los métodos ''add(Object)'' y ''poll()'' para retirar el primer elemento. En Java, la clase ''LinkedList'' implementa el interfaz ''Queue'' y proporciona una cola FIFO a través de los métodos ''add(Object)'' y ''poll()'' para retirar el primer elemento.
  
-----+====== 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>%Y}} Santiago Faci (c) 2019-{{date>%Y}} Santiago Faci
apuntes/colecciones.1685905108.txt.gz · Last modified: 2023/06/04 18:58 by Santiago Faci