#java #dictionary #data-structures
#java #словарь #структуры данных
Вопрос:
Мне нужно создать класс Team, который может содержать информацию об определенном размере команды, например — в футбольной команде может быть 1 тренер и 23 игрока, в баскетбольной команде — 1 тренер и 15 игроков. Я мог бы использовать coach в качестве ключа, но значение немного сложное, потому что игроки должны разделиться на две категории: стартеры и резервы, которых может быть ограниченное количество, в зависимости от вида спорта: 11 стартеров и 6 резервов (футбол). Я думаю, что это должно быть что-то вроде этого: private Map<Coach, Set<Athlete>> TeamList;
но таким образом я не могу разделить игроков на начинающих и резервных, а также не могу установить максимальный размер команды. Какой тип карты я мог бы использовать для достижения этой цели?
Комментарии:
1.
Map<String, Team>
или простоTeam[]
иclass Team {Coach coach; String name; whatever athletes; }
…
Ответ №1:
Я не думаю, что это хорошая идея различать информацию о команде по ее структуре данных, в вашем случае map. Вместо этого имело бы смысл определить базовый класс, содержащий информацию, которая применяется ко всем командам, независимо от вида спорта. Затем вы можете расширить этот класс и реализовать детали, характерные для каждого вида спорта, в подклассах
class Team{
}
class FootballTeam extends Team{
}
class BasketballTeam extends Team{
}