2013-01-12 57 views
1

我试图将我的地图:斯卡拉 - 转换映射到二维数组

private var map=Map[String,Double]() 

成二维数组,但我很难做。 有人能帮助我或者给我,例如它是如何做? 我也遇到了麻烦,在创建阵列,因此,如果你能帮助我与我会很高兴。

谢谢您的时间,并有一个美好的一天! :)

+6

什么是输入,什么是输出(可以提供例如,究竟阵列应该格式化)?你有什么尝试? –

回答

8

的指定者方法看起来很有希望:

res6: scala.collection.immutable.Map[java.lang.String,Double] = Map(a -> 1.1, b -> 2.2, c -> 3.0) 

    scala> res6.toArray 
    res7: Array[(java.lang.String, Double)] = Array((a,1.1), (b,2.2), (c,3.0)) 

如果你真的想要一个数组,而不是元组:

scala> res6.toArray.map(x => Array(x._1, x._2)) 
    res8: Array[Array[Any]] = Array(Array(a, 1.1), Array(b, 2.2), Array(c, 3.0)) 
+2

避免使用'_1'和'_2'的替代语法:'res6.toArray.map {case(a,b)=> Array(a,b)}' – Nick

+2

@Nick或'res6.toArray.map(x = > x.productElements.toArray)' –

+0

@ OM-NOM-NOM:其实productElements已被弃用,不会在2.10存在了(现在被称为productIterator) – BeniBela