如何在 Java 中生成一個 1 到 10 之間的隨機數
Rupam Yadav
2023年10月12日
-
random.nextInt()
生成 1 和 10 之間的隨機數 -
Math.random()
生成 1 到 10 之間的隨機數 -
ThreadLocalRandom.current.nextInt()
生成 1 到 10 之間的隨機數
我們將看看在 Java 中隨機生成 1 到 10 之間的隨機數的步驟。我們將看到三個可以生成 1 到 10 之間隨機數的 Java 包或類,以及其中哪個是最適合使用的。
random.nextInt()
生成 1 和 10 之間的隨機數
java.util.Random
是 Java 自帶的一個包,我們可以用它來生成一個範圍之間的隨機數。在我們的例子中,範圍是 1 到 10。
這個包有一個類 Random
,它允許我們生成多種型別的數字,無論是 int
還是 float.
檢查一下這個例子,以便更好地理解。
import java.util.Random;
public class Main {
public static void main(String[] args) {
int min = 1;
int max = 10;
Random random = new Random();
int value = random.nextInt(max + min) + min;
System.out.println(value);
}
}
輸出:
6
為了證明上面的技術是有效的,並且每次都能生成隨機數,我們可以使用一個迴圈來生成一個新的隨機數,直到它完成。由於我們的數字範圍不大,隨機數可能會被重複。
import java.util.Random;
public class Main {
public static void main(String[] args) {
Random random = new Random();
for (int i = 1; i <= 10; i++) {
int value = random.nextInt((10 - 1) + 1) + 1;
System.out.println(value);
}
}
輸出:
10
7
2
9
2
7
6
4
9
Math.random()
生成 1 到 10 之間的隨機數
另一個可以幫助我們實現目標的類是 Math
,它有多個靜態函式來隨機化數字。我們將使用 random()
方法。它返回一個 float
型別的隨機值。這就是為什麼我們要把它轉換為一個 int
。
public class Main {
public static void main(String[] args) {
int min = 1;
int max = 10;
for (int i = min; i <= max; i++) {
int getRandomValue = (int) (Math.random() * (max - min)) + min;
System.out.println(getRandomValue);
}
}
輸出:
5
5
2
1
6
9
3
6
5
7
ThreadLocalRandom.current.nextInt()
生成 1 到 10 之間的隨機數
我們列表中最後一個獲取 1 到 10 之間隨機數的方法是使用 JDK 7 中為多執行緒程式引入的 ThreadLocalRandom
類。
下面我們可以看到,我們必須呼叫該類的 current()
方法,因為我們希望在當前執行緒中生成隨機數。
import java.util.concurrent.ThreadLocalRandom;
public class Main {
public static void main(String[] args) {
int min = 1;
int max = 10;
for (int i = 1; i <= 10; i++) {
int getRandomValue = ThreadLocalRandom.current().nextInt(min, max) + min;
System.out.println(getRandomValue);
}
}
}
輸出:
3
4
5
8
6
2
6
10
6
2
作者: Rupam Yadav
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn