Open BrunTac opened 5 months ago
Hola @BrunTac
Ejercicio 8 La implementación es incorrecta porque estás repitiendo información. Ya en el ejercicio del bag en Programación Imperativa no estaba bien guardar varias veces el mismo elemento sino que lo guardábamos una sola vez asociándolo a una cantidad de apariciones. Acá hacemos lo mismo pero ahora utilizando un mapa donde la clave es el objeto y el valor es la cantidad de apariciones de ese objeto.
Ejercicio 9 En vez de tener una sola colección donde cada elemento tiene el T y el TimePair vos tenés un mapa donde asociás un T con un TimePair. Usando keySet, values o entrySet podés elegir si querés recorrer los T, los TimePair o ambos. El tema está en el método retrieve. Como es un HashMap cuando vos iterás por las claves estas no tienen orden entonces no podés hacer la optimización de que retrieve no siempre tenga que recorrer la colección hasta el final. Sacando esa optimización, lo demás está bien. Además en el retrieve hacés:
for(T elem : timeSet.keySet())
if(timeSet.get(elem).compareTo(tFrom) >= 0 && timeSet.get(elem).compareTo(tTo) <= 0)
toReturn.add(elem);
Como es un mapa estás iterando por keySet y luego hacés un get. Mejor iterar por entrySet y usar entry.getValue().
Perfecto, todo entendido. Muchas gracias!
Buenas! Tenia consultas sobre dos de los últimos ejercicios de la guía 6.
En el 8, la implementacion en las soluciones usa un mapa, pero yo use una lista. Elegir una lista en este caso seria incorrecto aunque me de bien el código de prueba? Adjunto abajo el código.
En el 9 la consulta es prácticamente la misma pero medio al revés. Yo implemente TimeSet usando un mapa en vez del set usado en las soluciones. Misma pregunta que el anterior. Adjunto abajo el código.
Gracias de antemano!