如何使用Kotlin在for循环中创建变量
给定parameter如何使用Kotlin在for循环中创建变量,kotlin,Kotlin,给定parametersize中的最大列表大小和parameterelements中的元素总数,我需要创建列表列表。在Kotlin的循环中为创建变量的语法是什么 我考虑的方法是在元素添加到列表之前声明和创建列表。然后,当一个列表达到满容量时,它被切换到下一个空列表 这是一个半生不熟的代码: fun listOfLists(size: Int, vararg elements: String): List<List<String>> { var amountOfEl
size
中的最大列表大小和parameterelements
中的元素总数,我需要创建列表列表。在Kotlin的循环中为创建变量的语法是什么
我考虑的方法是在元素添加到列表之前声明和创建列表。然后,当一个列表达到满容量时,它被切换到下一个空列表
这是一个半生不熟的代码:
fun listOfLists(size: Int, vararg elements: String): List<List<String>> {
var amountOfElements = elements.size
var currentSubList: List<String> = mutableListOf<String>()
val numberOfLists: Int = amountOfElements / size + 1
for (n in 0..numberOfLists) {
// Code for creating the total number of lists needed
}
for (e in elements) {
if (amountOfElements % size == 0) {
// Code for switching lists
}
amountOfElements--
}
有趣的列表(大小:Int,vararg元素:String):列表{
var amounteflements=elements.size
var currentSubList:List=mutableListOf()
val NumberOfList:Int=数量/大小+1
对于(0..NumberOfList中的n){
//用于创建所需列表总数的代码
}
对于(元素中的e){
如果(amountfements%size==0){
//切换列表代码
}
数量--
}
正如@dyukha正确提到的,您需要的是chunked()函数
fun listOfLists(size: Int, vararg elements: String) =
elements.asList().chunked(size)
或者,如果您想真正高效,也可以使用asSequence()
:
chunked()在数组上不起作用,因为它是在可伸缩的和序列上定义的,数组没有实现它们中的任何一个。这是你需要的吗?。实现在这里,如果你感兴趣的话:。@dyukha谢谢你可能重复的答案和注释帮助我实现了,但不要执行ally回答这个问题。chunked()
不适用于数组吗?。我认为vararg
给出了一个数组质量的参数。更新了我的答案。
fun listOfLists(size: Int, vararg elements: String) =
elements.asSequence().chunked(size)