Durante esta actividad:
Esta actividad promueve las siguientes habilidades, valores y actitudes: capacidad de resolver problemas, creatividad, y uso eficiente de la informática y las telecomunicaciones.
De manera individual o en parejas,
diseña y codifica una clase en Java llamada
SequentialMap<K,V>
, la cual debe implementar la
interfaz
java.util.Map<K,V>. Adicionalmente, se debe también implementar el método
toString()
tal como está documentado en la clase
java.util.AbstractMap<K,V>.
Nota: Es muy importante seguir al pie de la letra el contrato de cada método tal como está descrito en la documentación del API de Java.
La implementación debe realizarse usando listas doblemente encadenadas.
Cada pareja de llave/valor que se añada a un SequentialMap
debe insertarse al final de la lista, a menos que la llave ya hubiese existido previamente, en cuyo caso sólo se modifica su valor asociado sin cambiar su posición dentro de la lista. Al iterar sobre un SequentialMap
se devuelven los elementos en el mismo orden en que se encuentran dentro la lista.
Para aquellos métodos que devuelven un Set<E>
o una
Collection<E>
, se permite definir clases anidadas
que hereden de o deleguen a implementaciones concretas pre-existentes
de dichas interfaces.
El funcionamiento correcto de cada método de la clase
SequentialMap
, incluyendo el de las clases anidadas
auxiliares, debe ser adecuadamente verificado usando pruebas de unidad a
través de JUnit. Coloca las pruebas de unidad en una clase llamada
TestSequentialMap
.
Coloca los archivos SequentialMap.java
y
TestSequentialMap.java
dentro de un archivo ZIP
llamado mapa.zip
. Dicho archivo debe ser enviado por el
Sistema de Entrega de
Tareas Automatizado.
Fecha límite: Lunes, 11 de abril.
IMPORTANTE: Los archivos fuente de Java deben incluir al inicio la información personal de los autores (nombre y matrícula) dentro de un comentario. Por ejemplo:
/* * ITESM CEM, 11 de abril, 2011. * Archivo fuente de Java * Actividad: SequentialMap * Autor: Steve Rogers, 449999 */ . . (El resto del programa va aquí) .
Esta actividad se evaluará usando los siguientes criterios:
-10 | El programa no contiene los datos de los autores. |
---|---|
DA | El programa es un plagio. |
50 | El programa no funciona correctamente, o termina de manera abrupta con un mensaje de error. |
60-90 | El programa funciona bien, pero contiene algunos errores u omisiones con respecto a lo que se especificó. |
100 | El programa funciona correctamente, tal como se solicitó. |