提问人:Sergio76 提问时间:1/10/2022 最后编辑:mkrieger1Sergio76 更新时间:7/11/2023 访问量:512
创建一个列表 os Kotlin with de result of a repeat function
Create a list os Kotlin with de result of a repeated function
问:
我有一个很长的方法,它创建一个列表,其中包含一个函数的结果,该函数将两个数字相加:
private fun Add(one: Int, two:Int) : Int {
return one + two
}
private val myList = listOf(
Add(1, 2),
Add(2, 3),
Add(3, 4),
Add(4, 5),
Add(5, 6),
Add(6, 7),
Add(8, 9),
...
)
在 kotlin 中,有没有办法在不总是重复“add”函数名称的情况下创建此列表?
我尝试过使用“with”和“apply”,但我认为我没有正确使用它。
答:
1赞
Sergio
1/10/2022
#1
如果数字是随机生成的,那么你可以使用一些循环来填充列表,例如:
private val myList = genarateAndAdd(20)
private fun generateAndAdd(count: Int): List<Int> {
val list = mutableListOf<Int>()
repeat(count) {
list.add(Add(Random.nextInt(), Random.nextInt()))
}
return list
}
其中 是列表的大小。count
myList
1赞
bylazy
1/10/2022
#2
您可以使用以下功能:
import java.util.Random
val random = Random()
val myList = (0..<size of your list>).map{add(random.nextInt(), random.nextInt())}
1赞
Ivo
2/10/2022
#3
而不是这个
private val myList = listOf(
Add(1, 2),
Add(2, 3),
Add(3, 4),
Add(4, 5),
Add(5, 6),
Add(6, 7),
Add(8, 9)
)
你可以这样写
private val myList = listOf(
1, 2,
2, 3,
3, 4,
4, 5,
5, 6,
6, 7,
8, 9
).chunked(2).map { Add(it[0],it[1]) }
1赞
Andriy Kryvtsun
7/11/2023
#4
可以通过 Kotlin 单行获取所需列表
val myList = List(<size of your list>) { n -> Add(n, n+1) }
评论
private val myList = listOf(3, 5, 7, 9, 11, 13, 17, ...)
Add