最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java Random 隨機(jī)數(shù)的用法小結(jié)

 更新時(shí)間:2025年07月07日 08:26:37   作者:Java皇帝  
本文主要介紹了Java Random隨機(jī)數(shù)的用法小結(jié),Random類功能全面,支持生成整數(shù)、浮點(diǎn)數(shù)、布爾值及實(shí)現(xiàn)洗牌等高級(jí)操作,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

一、Random 類的基本用法

(一)導(dǎo)入類

在 Java 中,Random 類位于 java.util 包中,因此在使用之前需要導(dǎo)入該包。

import java.util.Random;

(二)創(chuàng)建 Random 對(duì)象

可以通過(guò)以下兩種方式創(chuàng)建 Random 對(duì)象:

Random random = new Random();
// 或者指定種子
Random random = new Random(long seed);

種子用于初始化隨機(jī)數(shù)生成器的起始狀態(tài)。相同的種子會(huì)生成相同的隨機(jī)數(shù)序列。

(三)生成隨機(jī)整數(shù)

使用 nextInt() 方法可以生成一個(gè)隨機(jī)整數(shù)。如果不指定參數(shù),它將返回一個(gè)介于 Integer.MIN_VALUEInteger.MAX_VALUE 之間的隨機(jī)整數(shù)。如果指定一個(gè)參數(shù) n,它將返回一個(gè)介于 0(包含)和 n(不包含)之間的隨機(jī)整數(shù)。

Random random = new Random();
int randomInt = random.nextInt(); // 生成任意隨機(jī)整數(shù)
int randomIntBetween0And10 = random.nextInt(10); // 生成0到9之間的隨機(jī)整數(shù)

(四)生成隨機(jī) double 值

使用 nextDouble() 方法可以生成一個(gè)介于 0.0(包含)和 1.0(不包含)之間的隨機(jī)雙精度浮點(diǎn)數(shù)。

Random random = new Random();
double randomDouble = random.nextDouble();

(五)生成隨機(jī) boolean 值

使用 nextBoolean() 方法可以生成一個(gè)隨機(jī)的布爾值,truefalse 的概率各為 50%。

Random random = new Random();
boolean randomBoolean = random.nextBoolean();

(六)生成隨機(jī) float 值

使用 nextFloat() 方法可以生成一個(gè)介于 0.0(包含)和 1.0(不包含)之間的隨機(jī)單精度浮點(diǎn)數(shù)。

Random random = new Random();
float randomFloat = random.nextFloat();

(七)生成隨機(jī) long 值

使用 nextLong() 方法可以生成一個(gè)介于 Long.MIN_VALUELong.MAX_VALUE 之間的隨機(jī)長(zhǎng)整數(shù)。

Random random = new Random();
long randomLong = random.nextLong();

二、Random 類的高級(jí)用法

(一)生成指定范圍內(nèi)的隨機(jī)數(shù)

在實(shí)際開(kāi)發(fā)中,我們常常需要生成指定范圍內(nèi)的隨機(jī)數(shù)。以下是生成指定范圍隨機(jī)數(shù)的方法:

Random random = new Random();

// 生成 [min, max) 范圍內(nèi)的隨機(jī)整數(shù)
int min = 10;
int max = 20;
int randomInRange = random.nextInt(max - min) + min;

// 生成 [min, max) 范圍內(nèi)的隨機(jī) double 值
double minDouble = 1.0;
double maxDouble = 10.0;
double randomDoubleInRange = random.nextDouble() * (maxDouble - minDouble) + minDouble;

(二)生成隨機(jī)字符串

有時(shí)我們需要生成隨機(jī)字符串,例如用于生成驗(yàn)證碼或隨機(jī)密碼。以下是一個(gè)生成隨機(jī)字符串的示例:

import java.util.Random;

public class RandomStringGenerator {
    private static final String CHARACTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";

    public static String generateRandomString(int length) {
        Random random = new Random();
        StringBuilder sb = new StringBuilder(length);

        for (int i = 0; i < length; i++) {
            int index = random.nextInt(CHARACTERS.length());
            sb.append(CHARACTERS.charAt(index));
        }

        return sb.toString();
    }

    public static void main(String[] args) {
        String randomString = generateRandomString(10);
        System.out.println("隨機(jī)字符串: " + randomString);
    }
}

(三)洗牌算法

Random 類可以用于實(shí)現(xiàn)洗牌算法,隨機(jī)打亂數(shù)組中的元素順序。以下是一個(gè)使用 Random 的洗牌示例:

import java.util.Random;

public class ShuffleExample {
    public static void shuffleArray(int[] array) {
        Random random = new Random();
        for (int i = array.length - 1; i > 0; i--) {
            int j = random.nextInt(i + 1);
            // 交換元素
            int temp = array[i];
            array[i] = array[j];
            array[j] = temp;
        }
    }

    public static void main(String[] args) {
        int[] array = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
        System.out.println("原始數(shù)組:");
        for (int num : array) {
            System.out.print(num + " ");
        }

        shuffleArray(array);

        System.out.println("\n洗牌后的數(shù)組:");
        for (int num : array) {
            System.out.print(num + " ");
        }
    }
}

三、Math.random() 的用法

除了 Random 類之外,Java 還提供了一個(gè)更簡(jiǎn)單的隨機(jī)數(shù)生成方法:Math.random()。它返回一個(gè)介于 0.0(包含)和 1.0(不包含)之間的隨機(jī)雙精度浮點(diǎn)數(shù)。

double randomValue = Math.random();

如果需要生成指定范圍內(nèi)的隨機(jī)數(shù),可以結(jié)合 Math.random() 和一些簡(jiǎn)單的數(shù)學(xué)運(yùn)算來(lái)實(shí)現(xiàn)。

// 生成 [min, max) 范圍內(nèi)的隨機(jī)整數(shù)
int min = 10;
int max = 20;
int randomInt = (int) (Math.random() * (max - min)) + min;

// 生成 [min, max) 范圍內(nèi)的隨機(jī) double 值
double minDouble = 1.0;
double maxDouble = 10.0;
double randomDouble = Math.random() * (maxDouble - minDouble) + minDouble;

四、總結(jié)

Random 類和 Math.random() 是 Java 中生成隨機(jī)數(shù)的兩種主要方式。Random 類提供了更豐富的功能,適用于需要生成多種類型隨機(jī)數(shù)的場(chǎng)景;而 Math.random() 更加簡(jiǎn)潔,適用于簡(jiǎn)單的隨機(jī)數(shù)生成需求。掌握這些隨機(jī)數(shù)生成方法,可以在實(shí)際開(kāi)發(fā)中靈活應(yīng)用,為程序增添更多隨機(jī)性和趣味性。

到此這篇關(guān)于Java Random 隨機(jī)數(shù)的用法小結(jié)的文章就介紹到這了,更多相關(guān)Java Random 隨機(jī)數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java JMH常見(jiàn)的基準(zhǔn)測(cè)試場(chǎng)景代碼實(shí)例解讀

    Java JMH常見(jiàn)的基準(zhǔn)測(cè)試場(chǎng)景代碼實(shí)例解讀

    本文介紹Java JMH性能測(cè)試框架,涵蓋方法比較、參數(shù)影響、吞吐量及多線程測(cè)試場(chǎng)景,通過(guò)@Benchmark、@State、@Param等注解定義基準(zhǔn),結(jié)合預(yù)熱和優(yōu)化處理確保測(cè)試結(jié)果準(zhǔn)確可靠
    2025-08-08
  • 淺析java異常棧

    淺析java異常棧

    給大家通過(guò)一個(gè)簡(jiǎn)單的代碼實(shí)例給大家分型了java異常棧問(wèn)題,需要的朋友參考一下吧。
    2017-12-12
  • Java中四種遍歷List的方法總結(jié)(推薦)

    Java中四種遍歷List的方法總結(jié)(推薦)

    下面小編就為大家?guī)?lái)一篇Java中四種遍歷List的方法總結(jié)(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-04-04
  • Maven發(fā)布Jar包中文亂碼解決方法

    Maven發(fā)布Jar包中文亂碼解決方法

    這篇文章主要介紹了Maven發(fā)布Jar包中文亂碼解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • Mybatis返回map集合時(shí),列的順序與select不一致問(wèn)題

    Mybatis返回map集合時(shí),列的順序與select不一致問(wèn)題

    這篇文章主要介紹了Mybatis返回map集合時(shí),列的順序與select不一致問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • Spring體系的各種啟動(dòng)流程詳解

    Spring體系的各種啟動(dòng)流程詳解

    這篇文章主要給大家介紹了關(guān)于Spring體系的各種啟動(dòng)流程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • java返回json請(qǐng)求中文變成問(wèn)號(hào)的問(wèn)題及解決

    java返回json請(qǐng)求中文變成問(wèn)號(hào)的問(wèn)題及解決

    這篇文章主要介紹了java返回json請(qǐng)求中文變成問(wèn)號(hào)的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • 一次因Java應(yīng)用造成CPU過(guò)高的排查實(shí)踐過(guò)程

    一次因Java應(yīng)用造成CPU過(guò)高的排查實(shí)踐過(guò)程

    一個(gè)應(yīng)用占用CPU很高,除了確實(shí)是計(jì)算密集型應(yīng)用之外,通常原因都是出現(xiàn)了死循環(huán)。下面這篇文章主要給大家介紹了一次因Java應(yīng)用造成CPU過(guò)高的排查實(shí)踐過(guò)程,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2018-11-11
  • Java線程休眠之sleep方法詳解

    Java線程休眠之sleep方法詳解

    這篇文章主要介紹了Java線程休眠之sleep方法詳解,Thread?類中有一個(gè)靜態(tài)方法的sleep方法,當(dāng)該線程調(diào)用sleep方法后,就會(huì)暫時(shí)讓CPU的調(diào)度權(quán),但是監(jiān)視器資源比如鎖并不會(huì)釋放出去,需要的朋友可以參考下
    2024-01-01
  • Java?Bean所有拷貝方式使用方法及性能比較詳解

    Java?Bean所有拷貝方式使用方法及性能比較詳解

    在Java開(kāi)發(fā)中,常常需要將一個(gè)對(duì)象的屬性值拷貝到另一個(gè)對(duì)象中,下面這篇文章主要介紹了Java?Bean所有拷貝方式使用方法及性能比較的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-10-10

最新評(píng)論

元氏县| 彭水| 综艺| 北碚区| 宁城县| 贵港市| 隆德县| 泽州县| 石楼县| 十堰市| 永新县| 西盟| 左权县| 康定县| 榆林市| 金秀| 南宁市| 华坪县| 渑池县| 建水县| 沙洋县| 永康市| 青州市| 泽州县| 雷山县| 洮南市| 城口县| 盘锦市| 修武县| 晋城| 唐河县| 阿图什市| 定日县| 岳西县| 新和县| 阳泉市| 崇左市| 拜城县| 武乡县| 调兵山市| 会同县|