List<String>如何转为Map<String,List<String>>
时间: 2023-07-09 15:37:47 浏览: 160
List<map>多字段组合排序
5星 · 资源好评率100%
可以使用Java 8的流(Stream)和Collectors工具类来将List<String>转换为Map<String,List<String>>。
假设现在有一个List<String>的变量名为list,其中每个元素都包含一个逗号分隔的键值对,例如"key1,value1"。
以下是将List<String>转换为Map<String,List<String>>的示例代码:
```
Map<String,List<String>> map = list.stream()
.map(str -> str.split(","))
.collect(Collectors.groupingBy(
arr -> arr[0],
Collectors.mapping(arr -> arr[1], Collectors.toList())
));
```
解释一下上面的代码:
1. 使用stream()方法将List<String>转换为Stream<String>。
2. 使用map()方法将每个String元素拆分成String数组,其中第一个元素作为键,第二个元素作为值。
3. 使用Collectors.groupingBy()方法将元素按照键分组,然后使用Collectors.mapping()方法将每个元素的值提取出来,并将其收集到List中作为值。
这样就可以得到一个Map<String,List<String>>,其中每个键对应一个List<String>,包含该键对应的所有值。
阅读全文