如何使用stream流把hashmap列表变成对象列表
时间: 2023-12-02 18:04:50 浏览: 57
假设我们有一个 HashMap 列表,其中每个 HashMap 对象都包含了一些属性,我们想要将其转换为对象列表。
首先,我们需要定义一个对应的对象类,该类包含与 HashMap 中键对应的属性。例如,假设我们有一个 HashMap 包含属性 "id"、"name" 和 "age",我们需要定义一个对应的对象类:
```
public class Person {
private int id;
private String name;
private int age;
// 构造函数、Getter 和 Setter 方法等
// ...
}
```
接下来,我们可以使用 Java 8 中的 Stream 流来将 HashMap 列表转换为 Person 对象列表。具体的代码如下:
```
List<Person> personList = hashMapList.stream()
.map(hashMap -> new Person(
(int) hashMap.get("id"),
(String) hashMap.get("name"),
(int) hashMap.get("age")
))
.collect(Collectors.toList());
```
在这段代码中,我们使用了 Stream 的 map() 方法将每个 HashMap 对象映射到一个新的 Person 对象上,然后使用 collect() 方法将所有 Person 对象收集到一个列表中。在 map() 方法中,我们根据 HashMap 中的键获取对应的属性值,并将其传递给 Person 对象的构造函数来创建新的对象。
注意,这里使用了强制类型转换符号 (int) 和 (String),这是因为 HashMap 中的值都是 Object 类型,需要手动进行类型转换。在使用时,需要确保 HashMap 中的键与 Person 对象中的属性名称相对应。
阅读全文