Adriano :
I have flat object POJO:
class FamilyInformation {
String house;
String familyMember;
}
with data like this:
[{
house: "houseName1",
familyMember: "Son"
},
{
house: "houseName1",
familyMember: "Mom"
},
{
house: "houseName1",
familyMember: "Dad"
}]
And I want to convert it into hierarchical object POJO:
class House {
String houseName;
List<FamilyMember> familyMembers;
}
class FamilyMember {
String familyMember;
}
Every information I found is to convert it to a Map. But I want to have List<House>
which contains List<FamilyMember>
any ideas what should I do?
Hadi J :
Try this one
Map<String,List<FamilyMember>> map = list
.stream()
.collect(
Collectors.groupingBy(
FamilyInformation::getHouseName,
Collectors.mapping(
family -> new FamilyMember(family.getFamilyMember()),
Collectors.toList()
)
)
);
and then
List<House> result = map.entrySet()
.stream()
.map(e -> new House(e.getKey(), e.getValue()))
.collect(Collectors.toList());