【发布时间】:2020-01-08 17:41:07
【问题描述】:
我正在尝试创建一个新列表,它将一个单级列表的内容与另一个嵌套列表的层次结构相结合,并通过两个列表中对象的 ID 将它们链接起来。注意:BChain 对象的 ID 存储在其中的 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), [])
)
作为最终名单。
注意:嵌套列表中的项目可能比单级列表中的项目多,如果是这种情况,则应忽略额外的项目。单级列表中的每一项都应对应于嵌套列表中的一项。
我怎样才能做到这一点?
任何帮助将不胜感激。
【问题讨论】:
-
@LuisMiguelMejíaSuárez 我已经编辑了我的问题。
-
任务不清楚,因为输出中的combinedList与输入中的nestedList相同,所以除了将AChain更改为BChain包装器之外,对于nestedList应该进行什么样的操作并不明显。如果在某些情况下应该忽略某些内容,请提供此示例
-
不一样。对象不同。为简单起见,我省略了对象属性。这是两个完全不同的对象,它们共享相同的 ID 值。
nestedList是AChain的嵌套列表。combinedLists是BChain的嵌套列表,其中BChain对象取自singleLevelList的BChain对象。 -
所以在输出中您只想重复nestedList 的层次结构但使用singleLevelList 对象?
-
组合列表是第一个列表与第二个列表内容的层次结构(因此没有
AChain对象)