在 Java 中生成指定範圍內的隨機數
-
使用 Java 中的
ThreadLocalRandom
類生成隨機數 -
使用 Java 中的
Math
類生成隨機數 -
使用 Java 中的
Random
類生成隨機數 -
使用 Java 中的
Random
類生成隨機數 -
使用 Java 中的
Random
類和IntStream
生成隨機數 -
使用 Java 中的
nextFloat
方法生成隨機數 -
使用 Java 中的
RandomData
類生成隨機數 -
使用 Java 中的
SecureRandom
類生成隨機數 -
使用 Java 中的
RandomUtils
類生成隨機數
本教程介紹瞭如何在 Java 中生成指定範圍內的隨機數。
有幾種在 Java 中生成隨機數的方法,例如 ThreadLocalRandom
類的 nextInt()
方法,Math
類的 random()
方法,Random
類,Random
類的 ints()
方法,Random
類的 nextFloat()
方法和 RandomUtil
類,等等。
使用 Java 中的 ThreadLocalRandom
類生成隨機數
Java 併發包提供了具有 nextInt()
方法的類 ThreadLocalRandom
。此方法可以生成指定範圍內的隨機整數。請參見以下示例。
import java.util.concurrent.ThreadLocalRandom;
public class SimpleTesting{
public static void main(String[] args) {
int min_val = 10;
int max_val = 100;
ThreadLocalRandom tlr = ThreadLocalRandom.current();
int randomNum = tlr.nextInt(min_val, max_val + 1);
System.out.println("Random Number: "+randomNum);
}
}
輸出:
Value in double: 12.9
Value in int: 12
使用 Java 中的 Math
類生成隨機數
Java Math
類可用於生成指定範圍內的隨機數。在這裡,我們使用 Math
類的 random()
方法來獲取隨機數。請參見下面的示例。
public class SimpleTesting{
public static void main(String[] args) {
int min_val = 10;
int max_val = 100;
double randomNum = Math.random() * ( max_val - min_val );
System.out.println("Random Number: "+randomNum);
}
}
輸出:
Id: 1212
Name: Samre
使用 Java 中的 Random
類生成隨機數
Java 的 Random
類可以使用 nextInt()
方法在指定範圍內生成一個隨機整數,該方法返回一個整數值。請參見下面的示例。
import java.util.Random;
public class SimpleTesting{
public static void main(String[] args) {
int min_val = 10;
int max_val = 100;
Random ran = new Random();
int x = ran.nextInt(max_val) + min_val;
System.out.println("Random Number: "+x);
}
}
輸出:
Id: 1212
Name: Samre
使用 Java 中的 Random
類生成隨機數
這是用於獲取指定範圍內的隨機整數的另一種解決方案。在這裡,我們使用帶有不同引數的 Random
類的 nextInt()
方法。請參見下面的示例。
import java.util.Random;
public class SimpleTesting{
public static void main(String[] args) {
int min_val = 10;
int max_val = 100;
Random rand = new Random();
int randomNum = min_val + rand.nextInt((max_val - min_val) + 1);
System.out.println("Random Number: "+randomNum);
}
}
輸出:
Random Number: 75
使用 Java 中的 Random
類和 IntStream
生成隨機數
在這裡,我們使用 Random
類的 ints()
方法,該方法返回一個隨機數流。我們使用 forEach()
方法來列印 ints()
方法生成的所有隨機整數。請參見以下示例。
import java.util.Random;
import java.util.stream.IntStream;
public class SimpleTesting{
public static void main(String[] args) {
int min_val = 10;
int max_val = 100;
Random rand = new Random();
IntStream stream = rand.ints(5, min_val, max_val);
stream.forEach(System.out::println);
}
}
輸出:
94
35
90
74
47
使用 Java 中的 nextFloat
方法生成隨機數
Random
類提供了一種方法 nextFloat()
來生成一個 float 型別的隨機數。如果我們要獲取浮點型隨機數,則此方法很有用。請參見以下示例。
import java.util.Random;
public class SimpleTesting{
public static void main(String[] args) {
int min_val = 10;
int max_val = 100;
Random rand = new Random();
float rand_val = rand.nextFloat() * (max_val - min_val);
System.out.println(rand_val);
}
}
輸出:
71.88764
使用 Java 中的 RandomData
類生成隨機數
如果你正在使用 apache commons 庫,請使用 RandomData
類。此類提供了一種 nextInt()
方法,該方法返回一個整數值。我們可以使用此方法來生成指定範圍內的隨機整數。請參見下面的示例。
import org.apache.commons.math.random.RandomData;
import org.apache.commons.math.random.RandomDataImpl;
public class SimpleTesting{
public static void main(String[] args) {
int min_val = 10;
int max_val = 100;
RandomData randomData randomData = new RandomDataImpl();
int number = randomData.nextInt(min_val, max_val);
System.out.println(number);
}
}
輸出:
72
使用 Java 中的 SecureRandom
類生成隨機數
SecureRandom 類屬於 Java 的 security
包,用於建立安全隨機數。在這裡,我們使用 Date
類生成種子,然後使用 nextInt()
方法生成隨機整數。請參見以下示例。
import java.security.SecureRandom;
import java.util.Date;
public class SimpleTesting{
public static void main(String[] args) {
int min_val = 10;
int max_val = 100;
SecureRandom rand = new SecureRandom();
rand.setSeed(new Date().getTime());
int randomNum = rand.nextInt((max_val - min_val) + 1) + min_val;
System.out.println(randomNum);
}
}
輸出:
65
使用 Java 中的 RandomUtils
類生成隨機數
我們可以使用 apache commons 庫的 RandomUtil
類來生成隨機整數。此類的 nextInt()
方法返回一個整數類。請參見以下示例。
import org.apache.commons.lang3.RandomUtils;
public class SimpleTesting{
public static void main(String[] args) {
int min_val = 10;
int max_val = 100;
RandomUtils random = new RandomUtils();
int randomNum = random.nextInt(min_val, max_val);
System.out.println(randomNum);
}
}
輸出:
66