Conversation
avfyodorov
left a comment
There was a problem hiding this comment.
Добрый вечер, Никита!
Очень хорошая работа, от меня всего пара уточнений.
|
|
||
| private /* как это хранить??? */ timetable; | ||
|
|
||
| private Map<DayOfWeek, List<TrainingSession>> dayCache; |
There was a problem hiding this comment.
private Map<DayOfWeek, List<TrainingSession>> dayCache;
Честно говоря, не до конца понял выгоду от добавления и поддержания этой структуры. Лучше было бы сразу же собирать статистику в разрезе тренеров.
На ваше усмотрение.
private HashMap<Coach, Integer> coachesCounter;
There was a problem hiding this comment.
Согласен. Добавлю coachesCounter и упрощю реализацию.
| for (DayOfWeek day : DayOfWeek.values()) { | ||
| List<TrainingSession> list = dayCache.get(day); | ||
|
|
||
| for (TrainingSession session : list) { |
There was a problem hiding this comment.
На ваше усмотрение.
В принципе, можно было бы избавиться от вложенных циклов, оставив только один:
.....
List<CounterOfTrainings> counterOfTrainingsList = new ArrayList<CounterOfTrainings>();
for (Coach coach: coachesCounter.keySet()) {
CounterOfTrainings counterOfTrainings = new CounterOfTrainings(coach, coachesCounter.get(coach));
counterOfTrainingsList.add(counterOfTrainings);
}
............Для этого нужно завести дополнительную переменную:
//Сразу же подсчитывать количество тренировок
private HashMap<Coach, Integer> coachesCounter;И при добавлении очередной тренировки сразу же прибавлять её и в мапу:
public void addNewTrainingSession(TrainingSession trainingSession) {
................
//Сразу же подсчитывать количество тренировок
Coach currentCoach = trainingSession.getCoach();
coachesCounter.put(currentCoach, coachesCounter.getOrDefault(currentCoach, 0) + 1);
.........There was a problem hiding this comment.
Согласен, действительно можно упростить логику и избежать вложенных циклов, если поддерживать статистику по тренерам при добавлении тренировки. Внесу изменения и добавлю coachesCounter.
avfyodorov
left a comment
There was a problem hiding this comment.
Добрый день, Никита!
Замечаний нет.
Работа принята.
No description provided.