【发布时间】:2014-08-09 22:47:27
【问题描述】:
我正在尝试创建一个包含一个整数作为键和一个字符串列表作为值的 HashMap:
Map<Integer, List<String>> map = new HashMap<Integer, List<String>>(30);
我想以某种方式有效地填充它。我想出的是:
map.merge(search_key, new ArrayList<>(Arrays.asList(new_string)), (v1, v2) -> {
v1.addAll(v2);
return v1;
});
这段代码小而优雅,但我的问题是我在每次调用时都会创建一个新的List。有什么方法可以在第一次合并后跳过创建列表,只需在第一个创建的列表中添加 new_string ?
【问题讨论】:
-
“这段代码小而优雅”但是坏了。尝试在
Arrays.asList的结果上调用addAll是行不通的…… -
@Holger 你是对的。我的错误是 Arrays.asList(new_string) 给出了一个固定列表,我会修复它。