因此,我制作了返回publicKey的函数,我需要将其重复x次以供以后使用。
例如:publicKey: [76, 152, 93, 102, 145, 181],我需要将其重复3次,因此最终结果应为[76, 152, 93, 102, 145, 181, 76, 152, 93, 102, 145, 181, 76, 152, 93, 102, 145, 181]
我试过使用var list3 = publicKey * x,但是您可以想象,它没有用。

fun getPublicKey(privateKey: ArrayList<BigInteger>,
                 birthDay: BigInteger,
                 primNumb: BigInteger): ArrayList<BigInteger> {
    val inversMod = birthDay.modInverse(primNumb)
    //println(inversMod)
    val publicKey: ArrayList<BigInteger> = ArrayList()
    for (keyValue in privateKey){
        val pagaiduValue = (keyValue * inversMod).mod(primNumb)
        //println("($keyValue * $inversMod) mod $primNumb = $pagaiduValue")
        publicKey.add(pagaiduValue)
    }
    return publicKey
}

最佳答案

这是一个简短的解决方案:

inline fun <T> Iterable<T>.times(count: Int) = (1..count).flatMap { this }

可以这样使用:
val numbers = listOf(1, 2, 3)
val result = numbers.times(5)
println(result)                 // [1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3]

也许命名可能需要一些工作,times也可以假定具有将每个元素乘以给定数字的效果,repeat可能是更好的选择。另外,您可能想在Array<T>和原始数组类型(IntArray等)上进行定义。

10-04 12:23