Java随机产生指定范围的int整数

Java 7后的版本

Java 7新增了ThreadLocalRandom类,可以使用它来随机生成指定范围的整数。

import java.util.concurrent.ThreadLocalRandom;
int randomNum = ThreadLocalRandom.current().nextInt(min, max);

注意:产生的整数最小值为min,最大值为max-1。

使用ThreadLocalRandom缺点是不能设定随机的种子值,如果要设定随机的种子值使用Random类。

Java 7之前的版本

Random类产生整数的方法为netInt(max)。它只能产生[0,max)的随机整数,不能产生指定范围[min,max)的整数。

解决方法

Random rand = new Randowm();
int randomNum = rand.nextInt((max - min) + 1) + min;

注意:Random如果需要种子,使用种子的构造方法。另外为了避免每次都构造Random,可以构造一个Random的单例。

版权声明:著作权归作者所有。

相关推荐

Java源码分析:产生随机数Random与ThreadLocalRandom的区别

Java用于产生随机数的方法主要有两种:java.util.Random和java.util.concurrent.ThreadLocalRandom。Random从Jdk 1.0开始就有了,而ThreadLocalRandom是Jdk1.7才新增的。简单从命名和类所在的包上看,两者的区别在于对并发的支持。RandomRandom是一个伪随机数生成器,它内置了一个种子数seed。获取随机

Git切换分支到指定的提交(commit)

Git要切换到指定的提交,先找出提交的commitIdGit查找commitId$git log commit cbcf45ec166eee4ca0ade2dc78f1445f7d39f0ab Author: xxx Date:  Wed Jan 24 11:29:34 2018 +0800 fix bug

Python随机挑选列表的元素

Python提供了几种方法用于随机抽样。random.choice如果对随机的结果要求不严格,可以使用Python提供的random.choice。import random list = ['a','b','c','d'] print(random.choice(list)) random.choice可以称为伪随机,如果对random给定种子,那么它随机出来的结