使用stream流将List<String> 转成Map,key是List里面的元素。value是常量值222
时间: 2024-03-21 16:39:22 浏览: 165
可以使用 Java 8 中的流(Stream)来将 List<String> 转成 Map,其中 key 是 List 中的元素,value 是常量值 222。具体实现代码如下:
```java
List<String> list = Arrays.asList("key1", "key2", "key3");
Map<String, Integer> map = list.stream()
.collect(Collectors.toMap(s -> s, s -> 222));
System.out.println(map);
```
上述代码中,使用 toMap() 方法将 List 中的每个元素转成 Map 的 key,将常量值 222 转成 Map 的 value。其中,toMap() 方法的第一个参数表示 Map 的 key,第二个参数表示 Map 的 value。
输出结果为:
```
{key1=222, key2=222, key3=222}
```
相关问题
使用stream流将List<String> 转成Map
可以使用 Java 8 中的流(Stream)来将 List<String> 转成 Map。具体实现代码如下:
```java
List<String> list = Arrays.asList("key1=value1", "key2=value2", "key3=value3");
Map<String, String> map = list.stream()
.map(s -> s.split("="))
.collect(Collectors.toMap(a -> a[0], a -> a[1]));
System.out.println(map);
```
上述代码中,首先将 List 中的每个字符串按照 "=" 进行分割(使用 map() 方法),然后将分割后的数组转成 Map(使用 toMap() 方法)。其中,toMap() 方法的第一个参数表示 Map 的 key,第二个参数表示 Map 的 value。
输出结果为:
```
{key1=value1, key2=value2, key3=value3}
```
用stream將list<Map<String,List<String>>> 转化为Map<String,List<String>>
可以使用flatMap方法将所有的Map合并成一个,然后使用Collectors.groupingBy方法按照key进行分组,最终得到一个Map<String,List<String>>。
代码示例:
```
List<Map<String,List<String>>> list = new ArrayList<>();
// 添加数据到list中
Map<String,List<String>> result = list.stream()
.flatMap(map -> map.entrySet().stream())
.collect(Collectors.groupingBy(Map.Entry::getKey,
Collectors.mapping(Map.Entry::getValue,
Collectors.reducing(new ArrayList<>(),
(a, b) -> {
a.addAll(b);
return a;
}))));
```
解释:
1. 首先使用flatMap方法将所有的Map合并成一个,flatMap方法会将所有的元素合并成一个流。
2. 然后使用Collectors.groupingBy方法按照key进行分组,这里的key就是Map中的String类型。
3. Collectors.mapping方法用于将Map.Entry对象转换为Map中的List<String>对象,这里的value就是List<String>类型。
4. Collectors.reducing方法用于将所有的List<String>对象合并成一个List<String>,这里使用addAll方法将两个List<String>合并成一个。
5. 最终得到的结果就是一个Map<String,List<String>>类型的对象。
阅读全文