我想将列表中的项目彼此配对
例子
list("A","B","C") to -> list(Pair(A,B),Pair(A,C),Pair(B,C))
list("A","B","C","D") to -> list(Pair(A,B),Pair(A,C),Pair(A,D),Pair(B,C),Pair(B,D),Pair(C,D))
Run Code Online (Sandbox Code Playgroud)
我尝试过使用zipWithNext
,但它对我的事业没有帮助。如果有人可以告诉我如何实现这一目标?
您可以简单地嵌套for
循环并使用范围:
fun permute(list: List<String>): List<Pair<String, String>> {
var result: MutableList<Pair<String, String>> = mutableListOf()
for (i in 0..(list.size - 1)) {
val s = list.get(i)
for (j in (i + 1)..(list.size - 1)) {
val p = Pair(s, list.get(j))
result.add(p)
}
}
return result
}
Run Code Online (Sandbox Code Playgroud)
可能有更多 Kotlin 风格的方法,但我目前不知道......
fun main()
在这样的情况下使用这个方法
fun main() {
val list = listOf("A", "B", "C", "D")
println(permute(list))
}
Run Code Online (Sandbox Code Playgroud)
将输出
fun permute(list: List<String>): List<Pair<String, String>> {
var result: MutableList<Pair<String, String>> = mutableListOf()
for (i in 0..(list.size - 1)) {
val s = list.get(i)
for (j in (i + 1)..(list.size - 1)) {
val p = Pair(s, list.get(j))
result.add(p)
}
}
return result
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1910 次 |
最近记录: |