gpt4 book ai didi

java 迭代 map< string, list< string> , getordefault 方法

转载 作者:行者123 更新时间:2023-12-01 21:47:56 27 4
gpt4 key购买 nike

我有一个<字符串,列表<字符串类型>>的映射,我想做的是,如果列表存在,则添加一个字符串到映射值,否则创建一个列表并将其添加到列表中,然后插入到 map 中。s1s2 是字符串。

代码:

Map<String, List<String>> map = new HashMap<>();

map.put(s1,(map.getOrDefault(s1, new LinkedList<String>())).add(s2));

错误:

error: incompatible types: boolean cannot be converted to List<String>

这是怎么了!!!

最佳答案

列表 'map.getOrDefault(s1, new LinkedList())).add(s2)' 的 add 方法返回 boolean 值,因此您必须在单独的行中执行此操作

所以尝试这样

    Map< String, List< String>> map = new HashMap<>();

List<String> list = map.get(s1);
if(list == null){
list = new LinkedList<>();
map.put(s1,list);
}
list.add(s2);

如果使用 java 8 并且需要在单行中执行此操作

    map.computeIfAbsent(s1, k -> new LinkedList<>()).add(s2); 

关于java 迭代 map< string, list< string> , getordefault 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51015789/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com