har*_*ish 6 scala playframework-2.0
我有一些专栏
age | company | country | gender |
----------------------------------
1 | 1 | 1 | 1 |
-----------------------------------
Run Code Online (Sandbox Code Playgroud)
我想创建像这样的对
Set
使用集合方法生成幂集的惯用方法subsets
,
implicit class groupCols[A](val cols: List[A]) extends AnyVal {
def grouping() = cols.toSet.subsets.filter { _.size > 1 }.toList
}
Run Code Online (Sandbox Code Playgroud)
然后
List("age","company","country","gender").grouping
Run Code Online (Sandbox Code Playgroud)
交付
List( Set(age, company),
Set(age, country),
Set(age, gender),
Set(company, country),
Set(company, gender),
Set(country, gender),
Set(age, company, country),
Set(age, company, gender),
Set(age, country, gender),
Set(company, country, gender),
Set(age, company, country, gender))
Run Code Online (Sandbox Code Playgroud)
请注意,幂集包括空集和原始集合中每个元素的集合,这里我们将它们过滤掉。