Cómo convertir objeto plano en objeto intendenta mediante el uso de corrientes de Java

Adriano:

Tengo POJO objeto plano:

class FamilyInformation {
  String house;
  String familyMember;
}

con datos como este:

[{
 house: "houseName1",
familyMember: "Son"
},
{
 house: "houseName1",
familyMember: "Mom"
},
{
 house: "houseName1",
familyMember: "Dad"
}]

Y quiero convertirlo en objeto POJO jerárquica:

class House {
  String houseName;
  List<FamilyMember> familyMembers;
}
class FamilyMember {
  String familyMember;
}

Toda la información que he encontrado es para convertirlo en un mapa. Pero yo quiero tener List<House>que contenga List<FamilyMember>alguna idea de lo que debo hacer?

Hadi J:

Prueba este

Map<String,List<FamilyMember>> map = list
              .stream()
              .collect(
                  Collectors.groupingBy(
                      FamilyInformation::getHouseName, 
                      Collectors.mapping(
                          family -> new FamilyMember(family.getFamilyMember()),
                          Collectors.toList()
                      )
                   )
               );

y entonces

 List<House> result = map.entrySet()
        .stream()
        .map(e -> new House(e.getKey(), e.getValue()))
        .collect(Collectors.toList());

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=223598&siteId=1
Recomendado
Clasificación