【问题标题】:HashMap / ArrayList wont take multiple values per keyHashMap / ArrayList 每个键不会取多个值
【发布时间】:2019-05-07 22:08:55
【问题描述】:

我想创建一个 HashMap,它有一个字符串类型的键和一个在另一个类中设置的对象列表的值。

我尝试过的代码的工作原理是它向地图添加了一个键和一个值,但不会将多个值添加到 1 个键。 IE 我希望 Key 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 对象在单独的类文件中处理。

【问题讨论】:

    标签: java object hashmap key


    【解决方案1】:

    您的 else 不完整。您创建了一个列表,但当它看到密钥 division 存在时,从不添加它。添加

    newTeam.add(team);
    

    到你的 else 声明

    【讨论】:

    • 感谢您的快速响应,由于某些原因引发了更多错误,即:“找不到符号 - 方法 add(Team)”,尽管它在上面的 if 语句中使用了
    • 对不起。应该是 newTeam.add(team) 和 this.teams.put(division(newTeam)。此外,对变量的第一个单词使用大写字母是不好的做法(您的 ArrayList Team
    • 效果很好。并感谢有关命名约定的提示。
    猜你喜欢
    • 2021-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-16
    • 2014-03-22
    相关资源
    最近更新 更多