首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Scala: List[Tuple3] to Map[String,String]

Scala: List[Tuple3] to Map[String,String]
EN

Stack Overflow用户
提问于 2012-05-28 21:22:15
回答 2查看 2.4K关注 0票数 4

我得到了一个List[(Int,String,Double)]的查询结果,我需要将它转换成一个Map[String,String] (用于在html选择列表中显示)

我的黑客解决方案是:

代码语言:javascript
复制
val prices = (dao.getPricing flatMap {
  case(id, label, fee) =>
    Map(id.toString -> (label+" $"+fee))
  }).toMap

一定有更好的方法来达到同样的效果。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-28 21:35:21

简明扼要一点:

代码语言:javascript
复制
val prices =
  dao.getPricing.map { case (id, label, fee) => ( id.toString, label+" $"+fee)} toMap

更短的替代方案:

代码语言:javascript
复制
val prices =
  dao.getPricing.map { p => ( p._1.toString, p._2+" $"+p._3)} toMap
票数 8
EN

Stack Overflow用户

发布于 2012-05-28 21:29:53

这个怎么样?

代码语言:javascript
复制
val prices: Map[String, String] =
  dao.getPricing.map {
    case (id, label, fee) => (id.toString -> (label + " $" + fee))
  }(collection.breakOut)

collection.breakOut方法提供了一个CanBuildFrom实例,该实例确保即使从List进行映射,也会重新构造Map,这要归功于类型注释,并且避免了创建中间集合。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10785372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档