kotlin 如何用从1到90的5个唯一数字填充列表中的每一行?

ercv8c1e  于 2023-03-09  发布在  Kotlin
关注(0)|答案(1)|浏览(140)

我有一个3行的列表:

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

我需要用5个从1到90的唯一数字填充每行,怎么做?
我试过流,但它不工作,因为数字在每一行是一样的。我只需要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)
                    }
                }
            }
        }
    }
}
bvuwiixz

bvuwiixz1#

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个独特的元素。
编辑:更改两个版本以返回MutableList。

相关问题