golangbot
golangbot
发布于 3周前

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的单例。