Какой экземпляр Map использовать для хранения ключей / значений с ограничениями по размеру в java

#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{
}