java如何向映射<Integer>、列表<String>>中再添加一个值?
我有这个解决方案,可以将“c”添加到我的地图中,但是有没有其他方法可以在一行中完成我想要的任务
Map<Integer, List<String>> map = new HashMap<>();
List<String> list = new ArrayList<>();
list.add("a");
list.add("b");
map.put(1, list);
list.add("c");
map.put(1, list);
# 1 楼答案
如果你想在申报后做,你可以这样做
在声明中,你可以这样做
如果您不知道如何访问列表中的特定元素(如果需要),您可以这样做
其中i是列表的索引
# 2 楼答案
更新
你可以使用Stream。of()创建初始列表。之后,如果只想添加新值,则有必要将其添加到列表中,因为对象的引用是相同的
# 3 楼答案
我建议使用
Map.computeIfAbsent
。如果键不存在或指向null,则将使用提供的值(在本例中为ArrayList<String>
实例)并返回它,否则将使用已经存在的值印刷品
当然,您可以使用lambdas或显式方法来简化这个过程
# 4 楼答案
您不需要最后一次调用
map.put(1, list)
,因为list
已经是键1所指向的值,所以我猜这是一个单行线如果您的意思是用一行代码替换整个地图更新,您可以使用类似
Arrays.asList
的东西: