普通的Java教程——生成指定范圍內(nèi)的隨機數(shù)

本文翻譯自?baeldung 的博客,版權歸原作者所有。
1. 概述
在本教程中,我們將探討使用Java語言生成指定范圍內(nèi)的隨機數(shù)。
2. 生成指定范圍的隨機數(shù)
2.1 使用Math.random()
Math.random()
生成一個范圍在0到1之間的double類型的隨機數(shù),且該值大于等于0.0,小于1。
示例編碼如下:
public int getRandomNumber(int min, int max) {
? ? return (int) ((Math.random() * (max - min)) + min);
}
當Math.random()返回0.0時,這個函數(shù)的返回值是最小值:
0.0*(max-min)+min=min
當Math.random()返回1時(實際達不到),那么這個函數(shù)的返回值的上限是:
1*(max-min)/-min=max
2.2 使用java.util.Random.nextInt()
使用java.util.Random的實例,也可以用來做同樣的事情,相關代碼如下:
public int getRandomNumberUsingNextInt(int min, int max) {
? ? Random random = new Random();
? ? return random.nextInt(max - min) + min;
}
該函數(shù)生成的數(shù)同樣是包括最小值,不包括最大值。
2.3 使用java.util.Random.ints()
java.util.Random.ints方法返回一個隨機整數(shù)的Stream。
public int getRandomNumberUsingInts(int min, int max) {
? ? Random random = new Random();
? ? return random.ints(min, max)
? ? ? .findFirst()
? ? ? .getAsInt();
}
該函數(shù)生成的數(shù)同樣是包括最小值,不包括最大值。
總結
在本文中,我們了解了在給定范圍內(nèi)生成隨機數(shù)的幾種方法。相關代碼可以在github中看到:https://github.com/eugenp/tutorials/tree/master/java-numbers-2