java stream 把对象list转换为 Map<String, String> 的结果
时间: 2024-10-23 09:10:50 浏览: 19
在 Java 中,你可以使用 Stream API 将 List 对象转换成 Map<String, String>。Stream 提供了一种流式处理数据的方式,允许你在单一线程中对集合进行操作,而不需要显式的遍历。以下是一个简单的示例,假设我们有一个包含 Person 对象(每个 Person 有两个属性:name 和 age)的 List,并想把它们转换为键值对形式的 Map:
```java
import java.util.*;
import java.util.stream.Collectors;
class Person {
private String name;
private String age;
// getters and setters...
public String getNameAndAge() {
return this.name + " : " + this.age;
}
}
List<Person> personList = ...; // 假设已填充了Person对象
Map<String, String> map = personList.stream()
.map(Person::getNameAndAge) // 获取每个Person的name和age组合
.collect(Collectors.toMap(Function.identity(), Function.identity())); // 使用identity函数作为键值映射
// 这里假设姓名不会重复,如果可能存在重复,可以改用 Collectors.toMap 函数的其他版本来处理冲突
```
这个例子中,`map()` 方法用于将每个 `Person` 对象转换为其 `getNameAndAge()` 方法返回的字符串,`collect(toMap())` 则用于收集并构建最终的 `Map`。
阅读全文