Skip to content

Proyecto

En este proyecto se va a realiza clases wrappers de Arrays, para manejarlos en diferentes situaciones. Para ello se va a crear una interfaz llamada Collection con los siguientes métodos:

  • first(): devuelve el primer elemento de la colección
  • last(): devuelve el último elemento de la colección
  • isEmpty(): comprueba si la colección está vacía
  • get(): devuelve el primer elemento de la colección y lo elimina
  • pop(): devuelve el último elemento de la colección y lo elimina
  • add(element): añade el elemento a la colección

Los tipos de colecciones que se quieren tratar son las siguientes:

  • Cola. Este tipo de colección funciona como la cola de un supermercado y sigue el proceso de una cola FIFO (First In, First Out), es decir, el primero en entrar en la cola, es el primero en salir.
  • Pila. Este tipo de colección funciona como una pila platos y sigue el proceso de una cola LIFO (Last In, First Out), es decir, el último que ha entrado es el primero en salir.
  • Conjunto. Funciona exactamente igual que una cola, pero con la característica de que no puede contener elementos repetidos. En caso de que se intentase añadir un elemento repetido, éste se lo saltaría.
  • Entradas. Es una cola de elementos de pares clave-valor, donde la clave representada el identificador del valor. Al igual que los conjuntos, en una entrada no puede haber dos elementos iguales con la misma clave. En caso de que se intentase añadir un elemento repetido, éste se lo saltaría.

Crea las clases necesarias para representar todas las colecciones, que deben implementar la interfaz creada.

Para realizar este proyecto se tendrá en cuenta:

  • Se deberá hacer uso de Genéricos donde sea requerido.
  • Se deberá entregar un diagrama de clase que represente las relaciones entre las clases y las interfaces.
  • Se valorará la complejidad de un Main que ponga aprueba los métodos y clases creadas.
  • Se podrá usar la librería common realiza en proyectos anteriores, haciendo uso de JARs.
  • El nombre de las funciones será en inglés y deberán ser lo suficiente claras para poder identificarlas con facilidad.
  • El código se comentará haciendo uso de los comentarios JavaDoc además, de comentarios normales para dar una explicación a la parte del código más importante.
  • El repositorio de GitHub tendrá el siguiente nombre pr10java-NOMBRE-collections siendo NOMBRE el nombre del alumno.
  • Se declarará aquellas variables que sean necesarias inicializándolas si es necesario, indicando el tipo correspondiente.
  • Se hará uso de funciones y procedimientos donde sea oportuno.
  • La entrega de este proyecto se realizará a través de un enlace a un repositorio de GitHub, realizando siempre más de un commit.
  • Se valorará la limpieza, la claridad, y la estructura del proyecto.