scala – partition和groupBy有什么区别?
发布时间:2020-12-16 18:20:59 所属栏目:安全 来源:网络整理
导读:我正在通过Twitter的 Scala学校阅读,并正在查看groupBy和分区方法的集合.而且我不确定这两种方法之间的区别是什么. 我自己做了一些测试: scala List(1,2,3,4,5,6).partition(_ % 2 == 0)res8: (List[Int],List[Int]) = (List(2,6),List(1,5))scala List(1,6
我正在通过Twitter的
Scala学校阅读,并正在查看groupBy和分区方法的集合.而且我不确定这两种方法之间的区别是什么.
我自己做了一些测试: scala> List(1,2,3,4,5,6).partition(_ % 2 == 0) res8: (List[Int],List[Int]) = (List(2,6),List(1,5)) scala> List(1,6).groupBy(_ % 2 == 0) res9: scala.collection.immutable.Map[Boolean,List[Int]] = Map(false -> List(1,5),true -> List(2,6)) 那么这是否意味着分区返回两个列表的列表,而groupBy返回一个带有布尔键和列表值的Map?两者都具有基于条件将列表分成两个不同部分的相同“效果”.我不知道为什么我会用一个而不是另一个.那么,我什么时候使用分区而不是groupBy,反之亦然? 解决方法
groupBy更适合更复杂对象的列表.
说,你有一节课: case class Beer(name: String,cityOfBrewery: String) 和啤酒清单: val beers = List(Beer("Bitburger","Bitburg"),Beer("Frueh","Cologne") ...) 然后你可以通过cityOfBrewery分组啤酒: val beersByCity = beers.groupBy(_.cityOfBrewery) 现在,您可以获得自己在数据中所有城市酿造的所有啤酒的列表: val beersByCity("Cologne") = List(Beer("Frueh","Cologne"),...) 整洁,不是吗? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Scala IDE 4.0.0认为开箱即用的Play Framework 2.3.7程序有
- 自己理解的webservice (2012-05-22 15:53:18)
- gzip – 如何检查Unix .tar.gz文件是否是无解压缩的有效文件
- angularjs – Angular UI – 网格始终以编辑模式显示
- amazon-web-services – 从另一台主机上的另一个容器SSH到
- 语法 – 元组参数声明和赋值奇数
- angular – IE11和Edge中Bootstrap模式上的渲染工件
- 注射器不工作于角度2.0
- scala – 找不到类型为java.util.Date的Json反序列化程序
- angularjs – 在Angular中两次声明相同指令的目的是什么?