FamilyLegacy
ParentList<Parent>
Parent //(Obj Class)
ParentId // String ID
ChildList<Child> // List
Child
ChildId
GrandChildList<GrandChild>
GrandChild
GrandChildId
// Some GrandChild attribs
{
"parents": [
{
"Id": "P1",
"parentName": "BigBob",
"Child": [
{
"id": "C1",
"name": "BOB",
"grandChild": [
{
"grandChildId": "G1",
"grandChildName": "John"
},
{
"grandChildId": "G2",
"grandChildName": "Doe"
}
]
},
{
"id": "C2",
"name": "Marley",
"grandChild": [
{
"grandChildId": "G3",
"grandChildName": "Katty"
},
{
"grandChildId": "G4",
"grandChildName": "Perry"
}
]
}
]
}
]
}
Выходы в ->
{
"P1": {
"name": "BigBob",
"C1": {
"name": "Bob",
"G1": {
"name": "John"
},
"G2": {
"name": "Doe"
}
},
"C2": {
"name": "Marey",
"G3": {
"name": "Katty"
},
"G4": {
"name": "Parry"
}
}
}
}
Рассмотрим вышеупомянутый вложенный объект в структуру списка. Есть ли способ преобразовать эту структуру во вложенную карту, такую как
Map<String,Map<String, Map<String,Map<String,GrandChild>>>>
ParentId -> map of Parents ->map of childs ->map of grand childs keyed with respective IDs
Например, отображение первого уровня
Map<String, Parent> parentMap =
FamilyLegacy.getParents().stream().collect(
Collectors.toMap(Parent::getParentId,Function.identity()));
Мне трудно визуализировать отображение и вложение, признателен, если есть способ сделать это с помощью прямой группировки или сопоставления, отличной от итерации отдельных объектов списка