Como converter objeto plano na objeto intendente usando fluxos java

Adriano:

Eu tenho POJO objeto plano:

class FamilyInformation {
  String house;
  String familyMember;
}

com dados como este:

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

E eu quero convertê-lo em POJO objeto hierárquica:

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

Toda informação que eu encontrei é para convertê-lo em um mapa. Mas eu quero ter List<House>que contém List<FamilyMember>todas as idéias que eu deveria fazer?

Hadi J:

Tente este

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

e depois

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

Acho que você gosta

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