Мой базовый класс:
public class Student {
public String name;
public String className; // In real code I'd have a second object for return to the end user
public List<String> classes; // Can be zero
}
Я бы хотел сгладить это, чтобы я мог вернуть что-то вроде
[
{
"name":"joe",
"class":"science"
},
{
"name":"joe",
"class":"math"
},
]
Очевидно, глупый пример ради простоты.
Единственный способ, которым я смог это сделать, - это использовать какой-то длинный код, такой как:
List<Student> students = getStudents();
List<Student> outputStudents = new ArrayList<>();
students.forEach(student -> {
if(student.getClasses().size() > 0) {
student.getClasses().forEach(clazz -> {
outputStudents.add(new Student(student.getName(), clazz));
});
} else {
outputStudents.add(student);
}
});
Ищете способ упростить это, возможно, используя flapMap?