因此,我制作了返回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
等)上进行定义。