【发布时间】:2016-09-13 21:34:02
【问题描述】:
所以,我得到了一个元组列表,其中元组是 Int 和 List[Int] 的对。我需要在内部列表中添加一项来完成我尝试使用地图功能并且确实喜欢这个
val list = List((7, List(2,4,18)), (10,List (4,8,12)), (12, List (5, 9, 13)))
list.map(e => mapFunction(e,16,10))
上面我想在其列表 16 中插入第一个值为 10 的元组。这是 mapFunction:
def mapFunction(element: (Int, List[Int]), i: Int, fileID: Int) : (Int, List[Int]) = {
if (element._1 == fileID) {
val list2 = element._2 :+ i
(element._1, list2)
}
else
element
}
列表 2 包含附加值,但在原始列表中仍保持不变。有什么解决方法吗?
【问题讨论】:
-
如果你这样做
val newList = list.map(e => mapFunction(e,16,10)),这个newList会是你需要的吗? -
不完全是,问题有点广泛。我正在尝试在 scala 中实现倒排位置索引,我的数据结构是
index: Map[String, List[(Int, List[Int])]]。由于对于每个术语,我必须为每个文档保留文档ID 和该术语在文档中的位置。所以我的问题是为 docID 添加一个位置。如果我每次只返回新列表,我需要在地图中删除和添加术语,这是愚蠢的。
标签: scala data-structures