stream生成map
时间: 2023-11-14 17:07:33 浏览: 56
可以使用Java 8中的Stream API来生成Map。例如,假设我们有一个List<String>,我们想将每个字符串作为键,其长度作为值,可以使用以下代码:
```
List<String> strings = Arrays.asList("foo", "bar", "baz");
Map<String, Integer> map = strings.stream()
.collect(Collectors.toMap(s -> s, s -> s.length()));
```
这将生成一个Map,其中键为字符串本身,值为字符串的长度。
相关问题
list用stream生成map集合
好的,这是一个技术问题,我可以回答。您可以使用Java 8中的stream()方法将list转换为map。例如,假设您有一个包含元素的List对象,并且您希望将这些元素放入Map中,可以使用以下代码:
```
List<String> list = Arrays.asList("a", "b", "c");
Map<String, Integer> map = list.stream().collect(Collectors.toMap(Function.identity(), String::length));
```
这将生成一个包含键值对的Map对象,其中每个元素作为键,值是其字符串长度。
stream流 生成map
您好!要生成一个包含流元素的映射(map),您可以使用Java 8中的流操作和Collectors类中的toMap方法。toMap方法可以将流元素转换为一个映射。
下面是一个示例代码:
```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> items = List.of("apple", "banana", "orange");
// 使用流生成一个映射,键为字符串,值为字符串的长度
Map<String, Integer> map = items.stream()
.collect(Collectors.toMap(item -> item, item -> item.length()));
// 打印映射的内容
map.forEach((key, value) -> System.out.println(key + " -> " + value));
}
}
```
在这个例子中,我们使用流生成了一个包含水果名称和它们的长度的映射。通过调用`stream()`方法将列表转换为流,然后使用`collect()`方法和`Collectors.toMap()`来生成映射。`toMap()`方法接受两个函数作为参数,第一个函数将元素转换为键,第二个函数将元素转换为值。
运行上述代码将输出:
```
orange -> 6
banana -> 6
apple -> 5
```
希望能对您有所帮助!如果您有任何其他问题,请随时提问。