You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Scala中基于布尔条件单次转换拆分集合为二元组

用Scala的partition方法一键拆分集合

嘿,刚好Scala标准库就有个专门干这事的方法——partition!它完全符合你的需求:基于布尔条件把集合拆分成符合条件和不符合条件的两个子集,返回一个(Array[Person], Array[Person])格式的元组,而且只需要一条语句就能实现。

直接上完整代码示例:

case class Person(age: Int)
val persons: Array[Person] = Array(Person(15), Person(17), Person(30), Person(35))

// 一行代码完成拆分,这里以年龄>=18作为成年人的判断条件
val (adults, minors) = persons.partition(_.age >= 18)

简单解释下:

  • partition方法接收一个返回布尔值的函数作为参数,这里用_.age >= 18简写了判断逻辑(等价于p => p.age >= 18)
  • 方法执行后会返回一个元组,我们用模式匹配直接把元组的两个元素分别赋值给adults(符合条件的成年人)和minors(不符合条件的未成年人)
  • 最终adults会包含Person(30), Person(35),minors会包含Person(15), Person(17)

如果你需要调整判断条件,只需要修改partition里的布尔表达式就行,比如改成_.age > 20来区分不同年龄段的群体,非常灵活。

内容的提问来源于stack exchange,提问作者bp2010

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:18:29