HashMap / ArrayList не будет принимать несколько значений на ключ - PullRequest
0 голосов
/ 08 мая 2019

Я хочу создать HashMap с ключом типа String и значением List of Objects, настроенным в другом классе.

Код, который я пробовал, работает в том смысле, что он добавляет ключ и значение на карту, но не добавляет несколько значений к 1 ключу. I.E Я бы хотел, чтобы ключ x имел значения 1,2 и 3, но он просто перезаписывает последнее значение, а не добавляет другое.

Это мой текущий код:

    public class LeagueAdmin {

    private Map<String, List<Team>> teams;

    /**
     * Constructor for objects of class LeagueAdmin
     *
     */
    public LeagueAdmin() {
        this.teams = new HashMap<>();
    }

    public void addTeam(String division, Team team) {
        if(!this.teams.containsKey(division))
        {
            List<Team> Team = new ArrayList<>();
            Team.add(team);
            this.teams.put(division, Team);
        } else {
            List<Team> newTeam = this.teams.get(division);
        }
    }
        }

Как я уже сказал, когда я добавляю несколько значений к ключевой строке top, например, я ожидаю, что top покажет мне все добавленные значения, вместо этого он покажет только последнее добавленное значение. Также, как уже упоминалось, объект Team обрабатывается в отдельном файле класса.

1 Ответ

2 голосов
/ 08 мая 2019

Ваше еще не завершено. Вы создаете список, но никогда не добавляете его, когда видите, что ключ division существует. Добавить

newTeam.add(team);

на ваше заявление else

...