2013-08-02 39 views

回答

13

the docstake方法上Map

选择第一Ñ元件。

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

在地图收集不排序的情况下,所以不要让第一ň元素 - 实际上的第一ň元素的概念不计即使存在地图。

但是,take会给你一些第一ñ元素,听起来好像这是你想要的东西:

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

在这种情况下你碰巧拿到首先出现在这两个元素定义,但不要指望这种情况的发生。

0
scala> val map = Map[String,Int]("one"->1,"two"->2,"three"->3) 
map: scala.collection.immutable.Map[String,Int] = 
          Map(one -> 1, two -> 2, three -> 3) 

scala> val n = 2 
n: Int = 2 

scala> val firstN = map.take(n) 
firstN: scala.collection.immutable.Map[String,Int] = Map(one -> 1, two -> 2) 
0

听起来你正在寻找一个SortedMap,以及take(n)正如其他人所讨论的。