我有Map[String,String]
和第三方函數需要Map[String,Seq[String]]
有沒有簡單的方法來轉換這個,所以我可以將地圖傳遞給函數?如何將字符串轉換爲地圖中的Seq [字符串]
4
A
回答
9
original.mapValues(Seq(_))
注意mapValues
返回地圖視圖,因此函數(Seq(_)
)將每一個元件被訪問的時間重新計算。爲了避免這種情況,只需使用普通map
:
original.map{ case (k,v) => (k, Seq(v)) }
用法:
scala> val original = Map("a" -> "b", "c" -> "d")
original: scala.collection.immutable.Map[java.lang.String,java.lang.String] = Map(a -> b, c -> d)
scala> original.mapValues(Seq(_))
res1: scala.collection.immutable.Map[java.lang.String,Seq[java.lang.String]] = Map(a -> List(b), c -> List(d))
2
您可以通過使用:->
從Scalaz避免一些重複代碼。
如果t
是Tuple2
,f <-: t :-> g
相當於(f(t._1), g(t._2))
。
scala> import scalaz._, Scalaz._
import scalaz._
import Scalaz._
scala> val m = Map(1 -> 'a, 2 -> 'b)
m: scala.collection.immutable.Map[Int,Symbol] = Map(1 -> 'a, 2 -> 'b)
scala> m.map(_ :-> Seq.singleton)
warning: there were 1 deprecation warnings; re-run with -deprecation for details
res15: scala.collection.immutable.Map[Int,Seq[Symbol]] = Map(1 -> List('a), 2 -> List('b))
scala> m.map(_ :-> (x => Seq(x)))
res16: scala.collection.immutable.Map[Int,Seq[Symbol]] = Map(1 -> List('a), 2 -> List('b))
相關問題
- 1. 如何將圖像上的字符串轉換爲字符串?
- 2. 如何將字符串的字符串轉換爲字符?
- 3. Scala將地圖[字符串,列表[字符串]]轉換爲地圖[字符串,字符串]
- 4. 將字符串轉換爲字符串
- 5. 將字符串轉換爲字符串
- 6. 將字符串轉換爲字符串
- 7. 如何將字符串轉換爲Perl中的unicode字符串
- 8. Java的轉換{字符串,字符串} []地圖<字符串,字符串[]>
- 9. 如何轉換地圖[字符串,序列[字符串]以地圖[字符串,字符串]
- 10. 如何將字符串轉換爲非字符串在matlab中
- 11. 如何將字符串文字轉換爲字符串值
- 12. 在Play框架中將任何轉換爲地圖[字符串,字符串]
- 13. 轉換斯卡拉字符串RDD [SEQ [字符串]
- 14. 如何將JTextField轉換爲字符串和字符串爲JTextField?
- 15. 將字符串轉換爲int,int轉換爲字符串
- 16. 轉換scala地圖字符串 - >字符串轉換爲字符串 - >地圖
- 17. 如何將JSON字符串轉換爲Scala中的地圖
- 18. 如何將字符串轉換爲HTML友好的字符串
- 19. 如何將Unicode編碼的字符串轉換爲字符串
- 20. 如何將字符串的元組轉換爲字符串*?
- 21. 顯式地將字符串轉換爲原始字符串
- 22. 轉換地圖<字符串,字符串>爲JSON
- 23. 字符串轉換列表分爲地圖[字符串,列表]
- 24. 將字節字符串轉換爲python中的字符串
- 25. 如何將Objective-C字符串轉換爲C字符串?
- 26. 如何將[]字符串轉換爲...字符串
- 27. 如何將字符串轉換爲字符串[] // Android開發// Java
- 28. 如何將Flask Markup字符串轉換爲普通字符串
- 29. 如何將字符串[]轉換爲字符串?
- 30. 如何將這些字符串轉換爲普通字符串?
感謝您的幫助! – chiappone 2012-01-18 18:44:58
+1關於視圖評估語義的提示。 – missingfaktor 2012-01-18 20:08:56