POO-ITBA / 2024_01

Consultas 1C 2024
0 stars 0 forks source link

Ej 9 TP6 #8

Open ldicandia opened 4 months ago

ldicandia commented 4 months ago

Buenas, queria saber si estaba bien implementado este ejercicio

public class TimeSetImpl<T> implements TimeSet<T>{

    //Si el elemento a agregar ya existía, se modifica el horario que tenía
    //    * anteriormente.

    private final Map<T, LocalTime> map = new HashMap<>();

    @Override
    public void add(T elem, int hours, int minutes) {
        map.put(elem, LocalTime.of(hours, minutes));
    }

    @Override
    public void remove(T elem) {
        map.remove(elem);
    }

    @Override
    public int size() {
        return map.size();
    }

    @Override
    public boolean contains(T elem) {
        return map.containsKey(elem);
    }

    @Override
    public Set<T> retrieve(int hoursFrom, int minutesFrom, int hoursTo, int minutesTo) {
        LocalTime from = LocalTime.of(hoursFrom, minutesFrom);
        LocalTime to = LocalTime.of(hoursTo, minutesTo);

        Set<T> toReturn = new HashSet<>();

        for(T elem : map.keySet()){
            if(from.isBefore(map.get(elem)) && to.isAfter(map.get(elem))
                    || to.equals(map.get(elem)) || from.equals(map.get(elem))){
                toReturn.add(elem);
            }
        }

        return toReturn;
    }
}