我有一个学生列表,我想将其转换为地图列表,每个地图都包含特定的学生数据。
学生对象:
class Student {
String name;
String age;
String getName() {
return name;
}
}
我有一个学生列表,我想将其转换为应如下所示的地图列表:
[
{ name: "Mike",
age: "14"
},
{ name: "Jack",
age: "10"
},
{ name: "John",
age: "16"
},
{ name: "Paul",
age: "12"
}
]
有没有办法将List<Student>
转换为List<Map<String, String>>
?每张地图的键应该是名称&amp;年龄。
答案 0 :(得分:3)
使用Map.of
的Java-9解决方案:
myList.stream()
.map(s -> Map.of("name", s.getName(), "age", s.getAge()))
.collect(Collectors.toList());
答案 1 :(得分:2)
你的意思是:
List<Student> listStudent = new ArrayList<>();
List<Map<String, String>> result = listStudent.stream()
.map(student -> {
return new HashMap<String, String>() {
{
put("age", student.getAge());
put("name", student.getName());
}
};
}).collect(Collectors.toList());
例如,如果你有:
List<Student> listStudent = new ArrayList<>(
Arrays.asList(
new Student("Mike", "14"),
new Student("Jack", "10"),
new Student("John", "16"),
new Student("Paul", "12")
));
结果应如下所示:
[{name=Mike, age=14}, {name=Jack, age=10}, {name=John, age=16}, {name=Paul, age=12}]