加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

list – Scala将Collection转换为逐个Map的最佳方法? (第二个变

发布时间:2020-12-16 09:03:44 所属栏目:安全 来源:网络整理
导读:(这是 this QA的变种) 说我有这个: List( "foo","bar","spam" ) 我想创建一个Map,其键是String的长度,值是具有该长度的所有字符串的Collection.换句话说,鉴于关于List,我们得到: Map( 3 - List(foo,bar),4 - List(spam) ) 我写的代码是: list.foldLeft(Ma
(这是 this Q&A的变种)

说我有这个:

List( "foo","bar","spam" )

我想创建一个Map,其键是String的长度,值是具有该长度的所有字符串的Collection.换句话说,鉴于关于List,我们得到:

Map( 3 -> List(foo,bar),4 -> List(spam) )

我写的代码是:

list.foldLeft(Map[Long,List[String]]()) {
  (m,s) => m(s.length) = s ::
     ( if ( m.contains(s.length) ) m(s.length)
       else Nil )
}

这很有效,但它为Daniel Spiewak提供给原始问题(上面引用的)的优雅答案增添了许多丑陋.

任何想法如何改进我的变体的解决方案?

谢谢!
肖恩

解决方法

使用Scala 2.8.0:

list.groupBy(_.length)

它不能比这更简单!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读