gpt4 book ai didi

Java - 如何向 HashMap 中的现有键添加新值。 1 个键,多个值

转载 作者:行者123 更新时间:2023-12-01 07:48:54 26 4
gpt4 key购买 nike

我正在尝试创建一种方法,当给定键和值时,可以通过键访问 map ,然后添加或替换该特定值。我的 HashMap 是这样创建的:

public Band(){
musicians = new HashMap<>();
}

我可以像这样添加新条目,以 band 作为键:

public void addMapEntry(String band, String name, String instrument, int experience){
musicians.put(band, new Musician(name, instrument, experience));
}

我的新方法 header 如下所示:

public void addValue(){ }

我尝试过使用 put 方法,但无法让它按我想要的方式工作。我也尝试过迭代 map ,但我只使用过该方法来返回列表中的 map 对象,而我不想在此方法中返回任何内容。我希望能够向它发送两个参数(键和值)并让它仅替换该特定值。

我希望我的解释已经很清楚了。

最佳答案

Java Map 的每个键都是单个值。

如果单个键需要多个值,则应该将该类型设为适当类型的集合,并添加您自己的逻辑来添加新值。您的 Band 类应该具有添加/删除 Musician 的方法并处理私有(private)实现中的详细信息。

public class Band {

private Map<String, List<Musician>> members = new HashMap<String, List<Musician>>();

public void addMusician(String key, Musician musician) {
if (this.members.containsKey(key) {
List<Musician> musicians = this.members.get(key);
if (musician != null) {
musicians.add(musician);
this.members.put(key, musicians);
}
}
}

public void removeMusician(String key, Musician musician) {
// should be clear enough from the add method.
}
}

关于Java - 如何向 HashMap 中的现有键添加新值。 1 个键,多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42910487/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com