list的stream转map
时间: 2023-03-28 19:02:19 浏览: 125
可以使用Java 8中的stream()和collect()方法将List转换为Map。例如,假设我们有一个List<Person>,其中Person类有一个id和name属性,我们可以使用以下代码将其转换为Map<Integer, String>:
Map<Integer, String> idToNameMap = personList.stream()
.collect(Collectors.toMap(Person::getId, Person::getName));
这将返回一个Map,其中id是键,name是值。
相关问题
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
你可以使用Java 8的Stream API来将一个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<String> strings = List.of("apple", "banana", "cherry");
// 将List转换为Map,键为元素的索引,值为元素本身
Map<Integer, String> map = strings.stream()
.collect(Collectors.toMap(strings::indexOf, s -> s));
// 打印结果
map.forEach((k, v) -> System.out.println(k + ": " + v));
}
}
```
输出结果为:
```
0: apple
1: banana
2: cherry
```
在上述示例中,我们使用`strings.stream()`将List转换为Stream。然后,使用`Collectors.toMap()`收集器来将每个元素的索引作为键,元素本身作为值,最终得到一个Map。最后,我们使用`forEach()`方法打印出Map中的键值对。
希望对你有所帮助!如果有任何问题,请随时提问。
阅读全文
相关推荐















