首页 > 解决方案 > Scala List.combinations() 和/或 Set.subset() 的 Kotlin?

问题描述

以下 Scala 集合方法的 Kotlin 等价物是什么,如果它们存在的话?

标签: scalakotlincollections

解决方案


Scala 的List#combinations与Iterable#windowed的作用相同。

乍一看,名称组合似乎是所有可能的组合,但那是关于按给定大小排列的元素组。它在 kotlin 中命名为windowed 。

Set#subset还没有在 kotlin 中看到。可以通过扩展来实现:

fun <E> Set<E>.sets(): Set<Set<E>> = this.fold(mutableSetOf<MutableSet<E>>()) { mSet, currentEl ->
    mset.add(mutableSetOf())
    mset.forEach{ it.add(currentEl) }
}

推荐阅读