Kotlin-创建一个包含重复元素的可变列表

piah890a  于 2023-01-31  发布在  Kotlin
关注(0)|答案(4)|浏览(213)

创建一个给定长度n的可变列表的惯用方法是什么?该列表包含值为v的重复元素(例如listOf(4,4,4,4,4))作为表达式。
我正在使用val list = listOf((0..n-1)).flatten().map{v},但它只能创建一个不可变的列表。

rqqzpn5f

rqqzpn5f1#

use:

val list = MutableList(n) {index -> v}

或者,由于index未使用,您可以省略它:

val list = MutableList(n) { v }
aiqt4smr

aiqt4smr2#

另一种方式可以是:

val list = generateSequence { v }.take(4).toMutableList()

此样式与MutableList和(只读)List都兼容

iecba09b

iecba09b3#

如果需要不同的对象,可以使用repeat。例如,

val list = mutableListOf<String>().apply {
   repeat(2){ this.add(element = "YourObject($it)") }
 }

将String替换为对象。将2替换为所需的元素数。

iq0todco

iq0todco4#

您可以将范围用于此目的,例如

val listOfFour = (1..10).map { 4 }

val objectList = (1..10).map {
            YourClass(
                arg1 = "someValue",
                arg2 = it                
            )
        }

如果需要,也可以使用it(索引)。

相关问题