list stream 转map map结果value为自己
时间: 2023-10-14 10:23:14 浏览: 51
可以使用`Collectors.toMap()`方法将`List`转换为`Map`,其中`value`为列表中的元素本身。以下是一个示例:
```java
import java.util.*;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<String> list = Arrays.asList("a", "b", "c");
Map<String, String> map = list.stream()
.collect(Collectors.toMap(
// key: 元素本身
element -> element,
// value: 元素本身
element -> element
));
System.out.println(map); // 输出: {a=a, b=b, c=c}
}
}
```
在上面的示例中,我们将`list`中的元素转换为`Map`,其中`key`和`value`均为元素本身。您可以根据您的需求调整`toMap()`方法的参数来适应不同的情况。
相关问题
list stream 转map
要将一个Stream转换为Map,你可以使用Collectors.toMap方法。这个方法需要提供两个lambda表达式,一个用于指定键(key)的提取方式,另一个用于指定值(value)的提取方式。
下面是一个示例代码,假设你有一个包含Person对象的Stream,你想将它们按照姓名作为键,年龄作为值转换为一个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<Person> persons = List.of(
new Person("Alice", 25),
new Person("Bob", 30),
new Person("Charlie", 35)
);
Map<String, Integer> personMap = persons.stream()
.collect(Collectors.toMap(Person::getName, Person::getAge));
System.out.println(personMap);
}
list 用stream转map
使用Stream将List转换为Map可以使用`Collectors.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> list = List.of("apple", "banana", "orange");
Map<String, Integer> map = list.stream()
.collect(Collectors.toMap(
fruit -> fruit, // key为水果名称
fruit -> fruit.length() // value为水果名称的长度
));
System.out.println(map);
}
}
```
输出结果将是`{banana=6, orange=6, apple=5}`,其中键为水果名称,值为水果名称的长度。