Ejercicios Colecciones Kotlin

Descargar estos ejercicios

Ejercicio 1

Teniendo en cuenta las colecciones vistas en el tema, vamos a proponer una serie de casos y deberás asociar la colección más adecuada. Además, para cada caso, deberás de crear la variable inicializada a algún valor de ejemplo. Crea la variable con var o val dependiendo que su mutabilidad.

  1. Colección para almacenar todas las provincias de España, que luego será utilizada en un desplegable para seleccionar una en concreto.
  2. Colección para almacenar el sueldo de un empleado para cada uno de los 12 meses del año, este empleado siempre tendrá un total de 12 pagas, pero la paga de cada més se puede cambiar en cualquier momento.
  3. Colección para almacenar los cinco nombres, de los grupos musicales que actúan semanalmente en una sala de conciertos, los grupos pueden cambiar cada semana pero siempre son cinco.
  4. Colección para almacenar los artículos del carrito de la compra, el cliente puede cambiar de opinión con respecto a alguno de los artículos que ya están en el carrito. Crea un data class Articulos sencilla [nombre, cantidad]
  5. Colección que almacena los meses del año.
  6. Colección para guardar el par login/password correspondiente a los usuarios que se van apuntando a una asociación de baile, los usuarios pueden cambiar el password en cualquier momento, el login será fijo.
  7. Colección para guardar las series de la aplicación de administración de la anterior entrega (utiliza la data class anterior).
  8. Colección para guardar la relación entre los meses del año y los días de cada més.
  9. Colección para almacenar el menú de la cena asociado a cada dia de la semana, en un hospital. Los datos (dia, menu como string) lo guardaremos en un tipo Pair.
  10. Colección para guardar las palabras clave de un lenguaje de programación, en una versión determinada.

Ejercicio 2

Vamos a crear la parte de una aplicación que gestiona el inventario de una pequeña tienda. Para ello crearemos un tipo object GestionInventario con un campo privado de tipo MutableMap<String, Int> donde la clave será el código del producto y el valor será la cantidad disponible en stock.

Además, crearemos una excepción InventarioException para controlar errores y funciones para añadir, modificar y eliminar productos del almacén.

Antes de cerrar el programa, se mostrará el contenido del map para comprobar que la gestión se ha realizado correctamente.

El programa principal podría mostrar un menú como este:

1. Añadir producto
2. Modificar stock
3. Eliminar producto
4. Salir

Aviso

Al añadir y eliminar se deberá comprobar que el código no esté vacío. Al modificar el stock, el producto debe existir y se deberá validar que la cantidad introducida sea mayor o igual a 0.

Ejercicio 3

Vamos a crear una pequeña aplicación para gestionar una colección de películas que están en cartelera. Queremos almacenar información sobre cada película y luego poder buscar y ordenar la colección de forma cómoda.

Crea un data class Pelicula con los siguientes campos:

Usa una colección adecuada para guardar todas las películas, puedes aplicar alguna función de kotlin.collections como filter, sortedBy, groupBy, count, etc para resolver estas tareas más rápidamente:

  1. Muestra todas las películas con sus datos.
  2. Busca las películas cuyo título contenga una palabra introducida por teclado, ignorando mayúsculas/minúsculas.
  3. Muestra solo las películas de un género concreto.
  4. Obtén la película más larga de la colección.
  5. Separa las películas en dos grupos: las de 120 minutos o más y las más cortas.

Puedes probar el programa con esta lista inicial:

val peliculas = listOf(
    Pelicula("Dune", "Ciencia Ficción", 155, "Denis Villeneuve"),
    Pelicula("El viaje de Chihiro", "Animación", 125, "Hayao Miyazaki"),
    Pelicula("La la land", "Musical", 128, "Damien Chazelle"),
    Pelicula("Mad Max: Fury Road", "Acción", 120, "George Miller"),
    Pelicula("Parasite", "Thriller", 132, "Bong Joon-ho"),
    Pelicula("Pride and Prejudice", "Romance", 128, "Joe Wright"),
    Pelicula("Shrek", "Animación", 90, "Andrew Adamson")
)

Crea un menú con las distintas opciones para poder ejecutar la app hasta no seleccionar la opción de salir.