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) 它不能比这更简单! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读