在HashMap中将条目添加到ArrayList

4le*_*x1v 1 java collections

我有一个带有一些条目的ArrayList作为HashMap中的值,如何向其中添加新值?

谢谢。是这样的:

Map<String, ArrayList<String>> index = new HashMap<String, ArrayList<String>>();
void add(String kword, String... urls){
    if(index.containsKey(kword)){
        index.get(kword).addAll(Arrays.asList(urls));
    } else {
        index.put(kword, (ArrayList<String>) Arrays.asList(urls));
    }
}
Run Code Online (Sandbox Code Playgroud)

thk*_*ala 5

假设您符合以下要求:

Map<K, ArrayList<V>> map = new HashMap<K, ArrayList<V>>();
Run Code Online (Sandbox Code Playgroud)

那么这应该允许您将新值添加到地图中作为值包含的任何列表中:

map.get(listKey).add(newValue);
Run Code Online (Sandbox Code Playgroud)

当然,您也可以将结果存储map.get(listKey)到一个临时变量中,以避免map.get()插入多个值时的开销:

List<V> list = map.get(listKey);

for (V value : newValues)
    list.add(value);
Run Code Online (Sandbox Code Playgroud)