从Scala中的地图中选择第一个"N"元素

blu*_*sky 6 scala

有没有一种从地图中提取第一个'N'元素的优雅方法?

我可以创建一个新的Map并迭代要选择的值,是否有一个函数可以实现这一点?

Tra*_*own 14

该文档take上方法Map:

选择前n个元素.

注意:除非订购了基础集合类型,否则可能会为不同的运行返回不同的结果.

在地图收集不排序的情况下,所以不要指望得到第一ñ元素,其实这个概念第一ñ元素根本不存在的地图.

但是take会给你一些n个元素,听起来这就是你想要的:

scala> Map('a -> 1, 'b -> 2, 'c -> 3).take(2)
res1: scala.collection.immutable.Map[Symbol,Int] = Map('a -> 1, 'b -> 2)
Run Code Online (Sandbox Code Playgroud)

在这种情况下,您碰巧得到了定义中第一个出现的两个元素,但不要指望这种情况发生.