Проверка наличия ArrayList на карте

В моей футбольной команде 5 разных команд, и я пытаюсь создать программу, которая отслеживает, какие игроки зарегистрированы в каждой команде. Я хочу добавить нового игрока, но сначала программа проверяет, зарегистрирован ли этот игрок. Я также смогу добавлять новые команды в будущем, и снова я хотел бы проверить, существует ли уже эта команда.

Я сделал переменную карты с

private Map<String, List<Player>> teamName;

затем инициализировал это в конструкторе

teamName = new HashMap<>();

Затем у меня есть метод добавления новых команд и новых игроков, я хочу, чтобы этот метод проверял, существует ли уже имя клуба, а затем, если оно существует, добавляю имя игрока в этот клуб. если он не существует, я хочу, чтобы программа добавила новый клуб, а затем добавила этого игрока в этот клуб.

Пока у меня есть метод добавления нового игрока,

public void newPlayer(String club, Player name) {
}

Я не уверен, как мне теперь проверить, существует ли ArrayList для club, и если он действительно добавляет name в этот список, если club не существует, то я хочу создать новый список и добавить name к нему.

если я потом запущу программу и напишу,

Player jamesAtkinson = new Player();

newPlayer("first team", jamesAtkinson);

он проверит, есть ли на карте список под названием «первая команда», а затем либо добавит в него Джеймса Атикинсона, либо создаст новый список под названием первая команда, а затем добавит Джеймса Аткинсона.

Это вообще возможно сделать?

сначала изучите основы. Игрок Джеймс Аткинсон = новый игрок(); никогда не скомпилируется.

Stultuske 10.04.2019 11:41
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
1
166
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Хотя есть несколько проблем с кодом, который вы указали в вопросе. То, что вам нужно, — это функция .containsKey, которая недоступна в интерфейсе карты.

if (players.containsKey("first team") {
     // Do something
} else {
     List<Player> firstTeam = new ArrayList<>();
     firstTeam.add(jamesAtikson);
     players.put("first team", jamesAtikson);
} 

Спасибо, Джей, все это имеет смысл, но если список уже существует, то как мы можем его добавить? т. е. если я создам команду с именем firstTeam и игроком JamesAtkinson, списка еще не будет, поэтому он будет создан, тогда я хочу добавить еще одного игрока в firstTeam. Я знаю, что мне нужно написать код в первой части оператора if, в идеале я хочу, чтобы имя списка совпадало с именем, на которое ссылается String club, чтобы затем я мог сделать что-то вроде club.add(name); не уверен, возможно ли это, потому что, если я попробую, он говорит есть ошибка не могу найти метод `add(Player) Спасибо, Джеймс

Joe Pasquale 10.04.2019 12:25

@JoePasquale Затем вам нужно вызвать метод get на карте, а затем вызвать add в возвращаемом списке. Вы даже можете связать методы вместе

Jay 10.04.2019 14:07

Другие вопросы по теме