当订单无关紧要时,计算列表的所有组合

时间:2014-11-09 21:31:12

标签: scala combinatorics

我有一个List [String],我想在订单无关紧要时创建所有可能的对组合的列表,即(" a"," b&#34 ;)和(" b"," a")是相同的组合。

例如:

val List = ("a", "b", "c")

我期望的结果是:

List[List[String]] = List(List(a, b), List(a, c), List(b, c)) 

由于

2 个答案:

答案 0 :(得分:1)

combinations方法执行此操作。您的List值实际上是一个元组,但是如下所示定义为List

scala> val list = List("a","b","c")
list: List[String] = List(a, b, c)

scala> list.combinations(2)
res0: Iterator[List[String]] = non-empty iterator

scala> list.combinations(2).toList
res1: List[List[String]] = List(List(a, b), List(a, c), List(b, c))

答案 1 :(得分:0)

快速查看集合API,您就可以了解:

List("a", "b", "c").combinations(2).toList