scala的breakOut的应用

问题:在scala中,List或Set等集合如何转换为Map集合?

由List/Set转换Map集合时,一般情况下,需要对其元素以元组的形式,再通过toMap等函数实现。

利用collections.breakOut的方式可直接由List/Set转换为Map集合,如:

val breakOut: Map[Int, String] = List("china", "usa", "russia").map(x => (x.length, x))(collection.breakOut)
    def mergeMessage(attr1: mutable.Map[VertexId, Double], attr2: mutable.Map[VertexId, Double]): mutable.Map[VertexId, Double] = {
      (attr1.keySet ++ attr2.keySet).map { key =>  
        val attr1Val = attr1.getOrElse(key, 0.0)    
        val attr2Val = attr2.getOrElse(key, 0.0)    
        key -> (attr1Val + attr2Val)               
      }(collection.breakOut)
    }

英文比较好的可查看:https://stackoverflow.com/questions/1715681/scala-2-8-breakout/1716558#1716558

还是有点不太懂!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值