import java.util.*;
public class ListMapToObjectExample {
// 定义一个类,用于将Map中的数据映射到对象中
static class Person {
private String name;
private int age;
// 构造函数
public Person(String name, int age) {
this.name = name;
this.age = age;
}
// Getter 和 Setter 方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Person{name='" + name + "', age=" + age + "}";
}
}
public static List<Person> convertListMapToListObject(List<Map<String, Object>> listMap) {
List<Person> personList = new ArrayList<>();
for (Map<String, Object> map : listMap) {
// 从Map中获取name和age,并创建Person对象
String name = (String) map.get("name");
int age = ((Number) map.get("age")).intValue();
Person person = new Person(name, age);
personList.add(person);
}
return personList;
}
public static void main(String[] args) {
// 创建一个包含Map的List
List<Map<String, Object>> listMap = new ArrayList<>();
Map<String, Object> map1 = new HashMap<>();
map1.put("name", "Alice");
map1.put("age", 30);
listMap.add(map1);
Map<String, Object> map2 = new HashMap<>();
map2.put("name", "Bob");
map2.put("age", 25);
listMap.add(map2);
// 调用转换方法
List<Person> personList = convertListMapToListObject(listMap);
// 打印结果
for (Person person : personList) {
System.out.println(person);
}
}
}
定义类 Person
:我们定义了一个简单的 Person
类,它有两个属性:name
和 age
。我们还为这个类提供了构造函数、getter 和 setter 方法,以及一个 toString()
方法用于打印对象信息。
convertListMapToListObject
方法:这个方法接收一个 List<Map<String, Object>>
类型的参数,表示一个包含多个 Map
的列表。每个 Map
包含键值对(例如 "name"
和 "age"
),我们将这些键值对提取出来并创建相应的 Person
对象,最后将所有 Person
对象添加到一个新的列表中并返回。
main
方法:在 main
方法中,我们创建了一个包含两个 Map
的列表,每个 Map
表示一个人的信息(名字和年龄)。然后调用 convertListMapToListObject
方法将 List<Map>
转换为 List<Person>
,并打印出转换后的结果。
通过这段代码,你可以轻松地将 List<Map<String, Object>>
转换为 List<Person>
或者其他自定义的对象列表。
下一篇:java 两个list去重
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站