作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试创建一种方法,当给定键和值时,可以通过键访问 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/
我是一名优秀的程序员,十分优秀!