Я пытаюсь создать новый список, который объединяет содержимое одного одноуровневого списка с иерархией другого вложенного списка и связывает их по идентификаторам объектов в обоих списках. Примечание: идентификатор объекта BChain хранится в ItemObj внутри него.
У меня есть три объекта:
ItemObj(id: String, stored: DateTime)
BChain(item: ItemObj, List[BChain])
AChain(aid: String, List[AChain])
У меня есть два списка:
val nestedList: List[AChain]
val singleLevelList: List[BChain]
Я хочу, чтобы второй список имел иерархию первого, но все же содержал свои собственные элементы. Следовательно, BChain
должен включать исходные свойства ItemObj
и List[BChain]
(включая все исходные данные свойства ItemObj
- ID и DateTime), когда он помещается в новый желаемый вывод списка.
Итак, вместо (ввода):
val nestedList = List(
AChain("123", List(AChain("456", [])),
AChain("789", [])
)
val singleLevelList = List(
BChain(ItemObj("123", DateTime), []),
BChain(ItemObj("456", DateTime), []),
BChain(ItemObj("789", DateTime), []))
)
Я бы хотел следующий вывод:
val combinedLists = List(
BChain(ItemObj("123", DateTime), List(BChain(ItemObj("456", DateTime), [])),
BChain(ItemObj("789", DateTime), [])
)
в качестве окончательного списка.
Примечание : Во вложенном списке может быть больше элементов, чем в одноуровневом, и если это так, то дополнительные элементы следует игнорировать. Каждый из элементов одноуровневого списка должен соответствовать одному из элементов во вложенном списке.
Как я могу выполнить sh это?
Буду признателен за любую помощь.