我有一个 list ,上面有3行:

private val line1 = mutableListOf<Int>()
private val line2 = mutableListOf<Int>()
private val line3 = mutableListOf<Int>()
val card = mutableListOf(line1, line2, line3)

我需要在每一行填上从1到90的5个唯一的数字,怎么做?

我try 了Flow,但它不起作用,因为每行中的数字都是相同的. 我只需要在每行5个唯一的数字.

class Card {

    private val line1 = mutableListOf<Int>()
    private val line2 = mutableListOf<Int>()
    private val line3 = mutableListOf<Int>()

    val card = mutableListOf(line1, line2, line3)

    init {
        runBlocking {
            launch {
                Generator.flow.collect {
                    card.forEach { line ->
                        line.add(it)
                    }
                }
            }
        }
    }
}

推荐答案

import kotlin.random.Random
import kotlin.random.nextInt

val result1 = MutableList(3) {
  generateSequence { Random.nextInt(1..90) }
    .distinct()
    .take(5)
    .toMutableList()
}

val result2 = generateSequence { Random.nextInt(1..90) }
  .distinct()
  .take(15)
  .chunked(5) { it.toMutableList() }
  .toMutableList()

第一个版本将创建3个列表,每个列表中的5个元素是唯一的.第二个版本将创建3个列表,每个列表中有15个唯一元素,每个列表有5个元素.

编辑:更改两个版本以返回MuableList<;MuableList>;.

Kotlin相关问答推荐

导入org.gradle.jvm.toolchain.internal.JavaToolchainFactory未解析引用:Java工具链工厂

我可以在kotlin/java.util.scanner中跳过分隔符而不重复吗?

Kotlin 函数名后面的大括号是什么意思?

Kotlin中反射中Int到可空Double的隐式转换失败

修改器的属性是什么,我需要更改以使角变圆且宽度更小?喷气背包组合

Kotlin 协程按顺序执行,但仅在生产机器上执行

具有泛型类型的 Kotlin 密封接口不会为其子类型推断约束

使用空键映射获取

Kotlin 插件之间的区别

这是什么 Kotlin 类型:(String..String?)

requireNotNull vs sure !! 操作符

如何在Kotlin中创建无限长的序列

如何在Android Studio 4.1中默认启用Kotlin Android扩展

Kotlin中的属性(properties)和参数(parameters)有什么区别?

通过在 kotlin-gradle 中使用子项目Unresolved reference: implementation

如何将vararg作为数组传递给Kotlin中的函数?

在 Kotlin 中编写一个等于 Int.MIN_VALUE 的十六进制整数文字

是否可以在不使用class的情况下将 Mockito 与 Kotlin 一起使用?

如何以编程方式将背景 colored颜色 从 android.support.design 更改为 MaterialButton

为什么我的类路径中有不同版本的 Kotlin JAR?