Rob*_*ood 2 java generics list java-8
我有一个<string,List <String type >>的映射,我想要做的是如果列表存在则添加一个字符串来映射值,否则创建一个列表并将其添加到列表并插入map.
s1,s2是字符串.
码:
Map<String, List<String>> map = new HashMap<>();
map.put(s1,(map.getOrDefault(s1, new LinkedList<String>())).add(s2));
Run Code Online (Sandbox Code Playgroud)
错误:
error: incompatible types: boolean cannot be converted to List<String>
Run Code Online (Sandbox Code Playgroud)
这有什么问题!!!
添加列表'map.getOrDefault(s1,new LinkedList())的方法.add(s2)'是返回布尔值,所以你必须在单独的行中执行
所以试试这样
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);
Run Code Online (Sandbox Code Playgroud)
如果使用java 8并且需要在单行中做这样的事情
map.computeIfAbsent(s1, k -> new LinkedList<>()).add(s2);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
864 次 |
| 最近记录: |