【发布时间】:2013-12-14 22:03:26
【问题描述】:
这是我在这个网站上发布的第一个问题!
在大学 Java 作业的最后一部分,我的班级被要求展示我们了解如何使用不同类型的数组。
在某一时刻,我们需要创建和维护一个 Map(key, value)。 但是,我们需要使用 ArrayList(String) 作为 Map 的值。
添加到这个地图看起来很容易: 只需检查有问题的 Map 是否还没有包含指定的键,然后创建数组并填充其值并“放置”它,并将键 String 放到 Map 中。
private Map<String, ArrayList<String>> map = new HashMap<String, ArrayList<String>>();
public void addToMap(String key, String value) {
if (!this.map.containsKey(key) {
ArrayList<String> array = new ArrayList<String>();
array.add(value);
this.map.put(key, array);
}
else {
this.map.get(key).add(value); // Does this add a new item to the current ArrayList?
}
}
但是如果我想编辑那个数组的内容呢? 我今天才刚开始看 Maps,所以我对他们有点陌生,但我看到他们有一个“put”方法 - 我明白 put、pop 和 push 通常是做什么的,所以这有点熟悉. 我是否必须将数组的内容复制到一个新的临时数组中,删除()旧的“key => value”对并使用附加数据创建一个新数组?
非常感谢您的帮助! :D
【问题讨论】:
-
那不是数组。这是一个
ArrayList。您的作业实际上是关于数组,还是关于一般的集合? -
你只需要
map.get(key).add(element)。 -
@JonSkeet :对不起,如果我让你感到困惑。是的,我确实知道数组和数组列表之间的基本区别。我使用的是通用英语术语'collection of things',恰好是“array”。但无论如何,我现在已经更新了我的术语。
-
@MarkoTopolnik 你违反了LoD。
-
@tintinmj 我想你不太明白我在说什么。
标签: java arrays data-structures map arraylist