我有一个ArrayList,如下所示:
ArrayList
var amplititudes : ArrayList<Int> = ArrayList()
我想用随机的整数填充它。我该怎么做呢?
daupos2t1#
其中一个选项是使用数组建构函式,如下所示:
var amplititudes = IntArray(10) { Random().nextInt() }.asList()
另一个策略是:
var amplititudes = (1..10).map { Random().nextInt() }
编辑(已过期!)
正如注解中所建议的,与其每次都创建Random的示例,不如初始化一次:
Random
var ran = Random() var amplititudes = (1..10).map { ran.nextInt() }
x7rlezfr2#
根据@Md Johirul Islam的答案您还可以用途:
val from = 0 val to = 11 val random = Random var amplititudes = IntArray(10) { random.nextInt(to - from) + from }.asList()
在这个解决方案中,你可以指定你想要的整数的范围,例如从0到10
twh00eeo3#
也许是这样的:
val amplitudes = ThreadLocalRandom.current().let { rnd -> IntArray(5) { rnd.nextInt() } }
或者这样:
val amplitudes = ThreadLocalRandom.current().let { rnd -> (0..5).map { rnd.nextInt() }.toIntArray() }
eaf3rand4#
自从Kotlin1.3发布以来,就没有必要使用Java的java.util.Random,因为java.util.Random会将您的代码限制在JVM中。相反,引入了kotlin.random.Random,它在所有支持Kotlin的平台上都可用。
java.util.Random
kotlin.random.Random
val amplititudes = IntArray(10) { Random.nextInt() }.asList()
由于使用了伴随对象,因此不必担心每次迭代都示例化Random对象(就像Java对象一样,必须将其放入变量中)。
b0zn9rqh5#
要生成List的指定长度且在特定限制之间的随机数,请用途:
val rnds = (1..10).map { (0..130).random() }
其中(1..0)-〉返回10个项目的列表(0..130)-〉返回给定范围之间的随机数
(1..0)
(0..130)
6bc51xsx6#
这时,在你的问题中并没有指定Ints的范围和你需要多少。所以我把这个例子限制在[n,m]区间,我假设你想要所有的m-n+1个元素。利用ArrayList的方法shuffle,
var shuffledList = ArrayList((n..m).toList()) shuffledList.shuffle()
6条答案
按热度按时间daupos2t1#
其中一个选项是使用数组建构函式,如下所示:
另一个策略是:
编辑(已过期!)
正如注解中所建议的,与其每次都创建
Random
的示例,不如初始化一次:x7rlezfr2#
根据@Md Johirul Islam的答案您还可以用途:
在这个解决方案中,你可以指定你想要的整数的范围,例如从0到10
twh00eeo3#
也许是这样的:
或者这样:
eaf3rand4#
自从Kotlin1.3发布以来,就没有必要使用Java的
java.util.Random
,因为java.util.Random
会将您的代码限制在JVM中。相反,引入了kotlin.random.Random
,它在所有支持Kotlin的平台上都可用。由于使用了伴随对象,因此不必担心每次迭代都示例化
Random
对象(就像Java对象一样,必须将其放入变量中)。b0zn9rqh5#
要生成List的指定长度且在特定限制之间的随机数,请用途:
其中
(1..0)
-〉返回10个项目的列表(0..130)
-〉返回给定范围之间的随机数6bc51xsx6#
这时,在你的问题中并没有指定Ints的范围和你需要多少。
所以我把这个例子限制在[n,m]区间,我假设你想要所有的m-n+1个元素。
利用ArrayList的方法shuffle,