Scala 遍历地图以获取val键或val键
我有一个下面的地图,但我需要一个函数,需要能够返回一个列表与下列数字,如果我们通过“100”,这是一个关键,我们通过arg传递Scala 遍历地图以获取val键或val键,scala,Scala,我有一个下面的地图,但我需要一个函数,需要能够返回一个列表与下列数字,如果我们通过“100”,这是一个关键,我们通过arg传递 List(100, 102 , 106 , 107 , 111 , 112) <- example output 您只需迭代,直到用完键值 Iterator.iterate("100")(Database.getOrElse(_,"")).takeWhile(_.nonEmpty).toList 这假设一个空字符串,“,是在映射中找不到的值的良好指示器。如果没
List(100, 102 , 106 , 107 , 111 , 112) <- example output
您只需迭代,直到用完键值
Iterator.iterate("100")(Database.getOrElse(_,"")).takeWhile(_.nonEmpty).toList
这假设一个空字符串,“
,是在映射中找不到的值的良好指示器。如果没有好的指示符值,则始终可以使用选项
包装器。更详细一点,但正是选项
的好处
Iterator.iterate(Option("100"))(opt => Database.get(opt.head))
.takeWhile(_.nonEmpty) //stop at first None
.flatten //remove Option wrappers
.toList //List[String] = List(100, 102, 107, 112)
您只需迭代
,直到用完键值
Iterator.iterate("100")(Database.getOrElse(_,"")).takeWhile(_.nonEmpty).toList
这假设一个空字符串,“
,是在映射中找不到的值的良好指示器。如果没有好的指示符值,则始终可以使用选项
包装器。更详细一点,但正是选项
的好处
Iterator.iterate(Option("100"))(opt => Database.get(opt.head))
.takeWhile(_.nonEmpty) //stop at first None
.flatten //remove Option wrappers
.toList //List[String] = List(100, 102, 107, 112)
您的意思是让val数据库成为Map[String,List[String]]吗?映射中的每个键都与一个值相关联。在提供的val数据库中,Database.get(“100”)生成“102”。e、 g.您是否需要更多地图(“100”,列表(“101”,“102”))首先,您的数据库地图有重复的键,即100,只有最新的将被保存,即“100”->“102”。@RameshMaharjan抱歉,拿走了重复的键out@dedpo无法理解要求,请在表格中多加解释details@dedpo你说的“对于102,值是106”how 106?在数据库中,我们看到了“102”->“107”。您是指val数据库是一个Map[String,List[String]]?Map中的每个键都与一个值关联。在提供的val数据库中,database.get(“100”)产生“102”。例如,您是否希望沿着Map(“100”,List(“101”,“102”)的路线获得更多信息首先,您的数据库映射有重复的密钥,即100,只保存最新的密钥,即“100”->“102”。@RameshMaharjan抱歉,已获取重复密钥out@dedpo无法理解要求,请在表格中多加解释details@dedpo您说过“102的值是106”如何106?在数据库中我们看到“102”->“107”软件工程师的悲惨借口“我认为你太谦虚了,先生!我必须找出这条优雅的单行线的所有捷径谢谢你,是吗。takeWhile(u.nonEmpty)本质上是指执行到映射的末尾?Iterator.iterate())
可能会创建一个无限集合。数据库
返回一个非键值后,该非键值将尝试作为索引,而数据库
将返回OrElse
值(在第一个示例中)或无
值(在第二个示例中)。takeWhile()
将把一个(潜在的)无限集合变成一个有限集合,方法是在第一个不符合其要求的元素(在本例中为非空的
)处停下来。“软件工程师的可怜借口”我认为你太谦虚了,先生!我必须找出所有这些通往这个优雅的集合的捷径谢谢你,是的(.nonEmpty)实际上意味着执行到映射的末尾?Iterator.iterate()
可以潜在地创建一个无限集合。在数据库
返回一个不是键的值之后,该非键值将尝试作为索引,而数据库
将返回OrElse
值(在第一个示例中)或None
值(在第二个示例中)。takeWhile()
将通过在不满足其要求的第一个元素处停止(在本例中为非空
)将(可能)无限集合转换为有限集合。