【发布时间】:2020-08-04 11:30:26
【问题描述】:
flatMap 从命令行获取整数输入。
必须生成一个列表,列表中元素的输入数量从 1 开始。
因此,当输入为 3 时,必须生成List(1,2,3)。
List 中的每个数字都生成了numberList = List(1,2,3)
必须用于创建单独的列表,其元素等于从 1 开始的数字。
因此,当输入为 3 时;列表(1),列表(1, 2),列表(1,2,3)
必须创建并连接在一起以将输出结果列表作为List(1, 1, 2, 1, 2, 3)
【问题讨论】:
-
输入输出背后的逻辑是什么?你试过什么?你有哪些限制?
-
从命令行取整数.. 比如说 3. 它应该将输出创建为 List(1,2,3).. 然后这个作为输入将创建 O/P 作为 List(1), List (1, 2), List(1,2,3).. 那么最终输出将是 List(1, 1, 2, 1, 2, 3)。
-
object flatMapUsage{ def main(args :Array[String]){ val input :Int = args(0).toInt val numberList = List.tabulate(input)(input=>input+1) def listGenerator = ((1 to Input.size).map(x => Input.take(x)).mkString(", ")) val resultList = numberList.flatMap(listGenerator) println(resultList) println(resultList.length ) } }
-
请编辑问题并正确格式化您的代码,而不是添加 cmets。 -顺便说一句,只是为了确保我理解,这个想法是创建一个最终列表,其中包含从
1到n的所有元素,在到达每个新元素后,它会一遍又一遍地开始。 -
当 n = 4 时会发生什么?它是否再次循环通过中间循环: List(1), List(1,2) , List(1,2,3), List(1,2,3,4) ?您期望的输出是什么。是列表(1,1,2,1,2,3,1,2,3,4)