欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

一、Random 類的基本用法

(一)導入類

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

import java.util.Random;

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

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

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

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

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

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

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

(四)生成隨機 double 值

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

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

(五)生成隨機 boolean 值

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

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

(六)生成隨機 float 值

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

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

(七)生成隨機 long 值

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

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

二、Random 類的高級用法

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

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

Random random = new Random();

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

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

(二)生成隨機字符串

有時我們需要生成隨機字符串,例如用于生成驗證碼或隨機密碼。以下是一個生成隨機字符串的示例:

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("隨機字符串: " + randomString);
    }
}

(三)洗牌算法

Random 類可以用于實現(xiàn)洗牌算法,隨機打亂數(shù)組中的元素順序。以下是一個使用 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 還提供了一個更簡單的隨機數(shù)生成方法:Math.random()。它返回一個介于 0.0(包含)和 1.0(不包含)之間的隨機雙精度浮點數(shù)。

double randomValue = Math.random();

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

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

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

四、總結(jié)

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

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

相關文章

  • 關于Java雙大括號{{}}的具體使用

    關于Java雙大括號{{}}的具體使用

    本文主要介紹了關于Java雙大括號{{}}的具體使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-07-07
  • 在已經(jīng)使用mybatis的項目里引入mybatis-plus,結(jié)果不能共存的解決

    在已經(jīng)使用mybatis的項目里引入mybatis-plus,結(jié)果不能共存的解決

    這篇文章主要介紹了在已經(jīng)使用mybatis的項目里引入mybatis-plus,結(jié)果不能共存的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • SpringBoot中@Value獲取值和@ConfigurationProperties獲取值用法及比較

    SpringBoot中@Value獲取值和@ConfigurationProperties獲取值用法及比較

    在Spring Boot中,@Value注解是一個非常有用的特性,它允許我們將外部的配置注入到我們的Bean中,@ConfigurationProperties用于將配置文件中的屬性綁定到 Java Bean 上,本文介紹了@Value獲取值和@ConfigurationProperties獲取值用法及比較,需要的朋友可以參考下
    2024-08-08
  • springboot接收JSON實現(xiàn)示例解析

    springboot接收JSON實現(xiàn)示例解析

    這篇文章主要為大家介紹了springboot如何接收JSON的實現(xiàn)示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07
  • SpringBoot ResponseEntity標識Http響應方式

    SpringBoot ResponseEntity標識Http響應方式

    這篇文章主要介紹了SpringBoot ResponseEntity標識Http響應方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • 一文搞懂JAVA 修飾符

    一文搞懂JAVA 修飾符

    這篇文章主要介紹了JAVA 修飾符的的相關資料,文中代碼非常詳細,幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-06-06
  • 23種設計模式(11)java策略模式

    23種設計模式(11)java策略模式

    這篇文章主要為大家詳細介紹了23種設計模式之java策略模式,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • Java線程同步Lock同步鎖代碼示例

    Java線程同步Lock同步鎖代碼示例

    這篇文章主要介紹了Java線程同步Lock同步鎖代碼示例,首先介紹了Java線程同步的原理,然后對lock同步鎖作了簡要闡述,分享了代碼示例,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • Spring Data JPA實現(xiàn)動態(tài)查詢的兩種方法

    Spring Data JPA實現(xiàn)動態(tài)查詢的兩種方法

    本篇文章主要介紹了Spring Data JPA實現(xiàn)動態(tài)查詢的兩種方法,具有一定的參考價值,有興趣的可以了解一下。
    2017-04-04
  • 使用Java提取字符串里的xml標簽

    使用Java提取字符串里的xml標簽

    在Java中,我們經(jīng)常需要處理XML數(shù)據(jù),有時候,我們需要從一個包含XML標簽的字符串中提取出這些標簽,本文將介紹如何使用Java代碼來獲取字符串中的XML標簽,需要的可以參考下
    2024-12-12

最新評論