list<string> 使用 stream 转map
时间: 2023-09-23 18:05:03 浏览: 90
你可以使用Java 8中的Stream API将List<String>转换为Map。下面是一个示例代码:
```java
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<String> strings = List.of("apple", "banana", "cherry");
Map<String, Integer> map = strings.stream()
.collect(Collectors.toMap(s -> s, String::length));
System.out.println(map);
}
}
```
在上面的示例中,我们使用`strings.stream()`将List<String>转换为一个Stream对象。然后,我们使用`Collectors.toMap()`方法将每个字符串作为键,字符串长度作为值来创建一个Map对象。最后,我们打印出这个Map对象。
输出结果将会是`{apple=5, banana=6, cherry=6}`,其中字符串作为键,字符串长度作为值。
相关问题
List<String> 使用stream转map 其中String 为key ,value 为new List
可以使用Java 8中的Stream API将List<String>转换为Map<String, List<String>>。代码如下:
```
List<String> list = Arrays.asList("a", "b", "c", "a");
Map<String, List<String>> map = list.stream()
.collect(Collectors.groupingBy(s -> s, Collectors.mapping(s -> "new List", Collectors.toList())));
```
上述代码中,首先将List<String>转换为Stream<String>,然后使用groupingBy对元素进行分组,其中第一个参数为分组的依据,即String类型的值;第二个参数为分组后的值的处理方式,即将String类型的值转换为"new List"字符串,然后将其收集到一个新的List中。最后,将分组后的结果收集到一个Map<String, List<String>>中。
stream Map<String, List<String>> 转List<String>
可以使用Java 8的Stream API来实现这个转换:
```
List<String> result = map.values().stream()
.flatMap(List::stream)
.collect(Collectors.toList());
```
首先,我们通过`map.values()`方法获取到所有的`List<String>`,然后使用`flatMap`方法将多个`List<String>`合并成一个`Stream<String>`,最后使用`collect`方法将`Stream<String>`转换为`List<String>`。
阅读全文