Kotlin中的MutableList(5)片段



我对这个片段有问题

fun main() {
val list = MutableList(5)
{
4
}
println(list) 
}

该片段将打印[4, 4, 4, 4, 4]

fun main() {
val list = MutableList(5)
{
index -> 4 + index
}
println(list) 
}

该片段将打印[4,5,6,7,8]

我想问的是,这可能非常非常愚蠢。如果我们使用与上面相同的代码段,是否有一种方法可以制作一个自定义列表,如[4, 6, 7, 9, 10]

我尝试使用[4, 6, 7, 9, 10](4, 6, 7, 9, 10)4, 6, 7, 9, 104; 6; 7; 9; 10,但都不起作用。

如果我使用4; 6; 7; 9; 10,列表将打印

[10, 10, 10, 10, 10]

如果有人愿意帮忙,下面的这个片段就是不起作用

fun main() {
val list = MutableList(5)
{
//[4, 6, 7, 9, 10]
//(4, 6, 7, 9, 10)
//4, 6, 7, 9, 10
4; 6; 7; 9; 10
}
println(list) 
}

如果您想要一个只有4, 6, 7, 9, 10的可变列表,最直接的方法是使用mutableListOf:创建它

val list = mutableListOf(4, 6, 7, 9, 10)

这将创建一个大小为5的MutableList,其值为4、6、7、9、10。除非要进行某种计算,或者所有元素都相同,否则不需要使用索引lambda构造来创建它。

您已经得到了几个答案,告诉您如何使用listOf/mutableListOf显式定义列表,并且您已经用链接(我无法访问它(回复了他们,并询问了如何从标准输入中读取。我假设这意味着你的问题没有得到回答,你正在努力澄清你在问什么,所以我会在你的回复中解释代码中发生了什么,以防这有助于澄清问题。

// on each line single numbers from 1 to 5
val numbers = MutableList(5) { readln().toInt() } 
println(numbers) // [1, 2, 3, 4, 5]

MutableList(5) { //some function }是一个列表生成器函数(此处为文档(-第一个参数是要生成的列表的大小。

第二个参数是被调用以生成每个项的函数。它有一个单独的参数(通常称为it,除非您重命名它(,它包含正在生成的项的索引。您可以使用它根据值在列表中的位置生成值,例如奇数列表的(it * 2) + 1


但您不必使用索引值-您可以为每个项目生成一个静态值,或者从任何您喜欢的地方提取数据来提供值。这就是readln()正在做的事情——每当函数运行以生成五个项目中的一个时,它都会从标准输入中读取一行。您还可以从Iterator中提取下一个项,从Random生成器中读取值,从API请求一些东西——无论您想要什么。重要的是返回一个值,因此函数中的代码充当一个表达式,并返回一个用作列表中项目的值。

所以,如果你真的想,你可以这样做:

// using an iterator because it has state, i.e. it remembers where it's up to in the list
val stuff = listOf("1", "4", "6", "7", "2").iterator()
fun main() {
val myList = List(5) { stuff.next().toInt() }
println(myList)
}

它的功能与从标准输入中读取相同,只是它轮询stuff迭代器以获取值。

如果您仔细查看数字序列:4, 6, 7, 9, 10

您可以看到,在第一个值和第二个值之间有一个2的delta。在第二个和第三个值之间有一个1的增量。然后又是一个2的德尔塔,依此类推。

你可以用创建这样的列表

val list = MutableList(5)
{
index -> 4 + index + (index and 1) + (index / 2)
}

哪个将生成

4 + 0 + (0 and 1) + (0 / 2) == 4 + 0 + 0 + 0 == 4
4 + 1 + (1 and 1) + (1 / 2) == 4 + 1 + 1 + 0 == 6
4 + 2 + (2 and 1) + (2 / 2) == 4 + 2 + 0 + 1 == 7
... etc ...

相关内容

  • 没有找到相关文章

最新更新