stream流list转map<String,list>
时间: 2023-09-29 20:03:10 浏览: 145
可以使用Java 8的Stream流和Collectors工具类来实现将List转换为Map<String, List>。示例代码如下:
```java
List<String> list = Arrays.asList("apple", "banana", "grape", "orange", "apple");
Map<String, List<String>> map = list.stream().collect(Collectors.groupingBy(Function.identity()));
```
这里使用了Stream的groupingBy方法,其中Function.identity()表示对元素进行分组的依据,即使用元素本身作为分组的key。返回的结果是一个Map<String, List<String>>,其中Map的key为元素本身,value为元素在List中出现的所有位置。
相关问题
stream流 List<Map<String, Object>>转List<Map<String,List<String>>>
在Java中,如果你有一个`List<Map<String, Object>>`类型的集合,你可以通过Stream API将其转换为`List<Map<String, List<String>>>`,前提是你能确定`Object`类型确实是字符串,并且已经封装成了列表形式。这通常涉及到先过滤、然后收集的过程。下面是一个示例:
```java
import java.util.*;
import java.util.stream.*;
List<Map<String, Object>> originalMaps = ...; // 假设这是你的原始数据
List<Map<String, List<String>>> convertedMaps = originalMaps.stream()
.map(map -> map.entrySet().stream() // 遍历每个Map的entrySet
.flatMap(entry -> entry.getValue().stream() // 如果value是Object[] 或者 Stream流,则进一步处理
.filter(obj -> obj instanceof String) // 筛选出String类型
.map(String.class::cast) // 转换为String
.collect(Collectors.toList())) // 收集到一个新的List<String>
.collect(Collectors.toList()); // 将所有entry对应的String列表收集到新的Map中
stream流List<Map<String, String>>转Map<String, String>
stream流可以将List<Map<String, String>>转换为Map<String, String>。可以使用Collectors.toMap()方法,该方法需要两个参数,第一个参数是key的提取函数,第二个参数是value的提取函数。具体实现可以参考以下代码:
Map<String, String> map = list.stream().collect(Collectors.toMap(map -> map.get("key"), map -> map.get("value")));
其中,list是一个List<Map<String, String>>类型的列表,map.get("key")和map.get("value")分别是提取key和value的函数。
阅读全文
相关推荐
















