使用Hutool编写生成随机数的工具类

 更新时间:2025年02月19日 15:47:10   作者:No8g攻城狮  
Hutool 是一个 Java 工具类库,提供了丰富的工具方法,其中 RandomUtil 是 Hutool 中用于生成随机数的工具类,下面我们来看看它的具体使用吧

Hutool 是一个 Java 工具类库,提供了丰富的工具方法,其中 RandomUtil 是 Hutool 中用于生成随机数的工具类。它封装了常见的随机数生成需求,使用起来非常方便。

以下是 RandomUtil 的常用方法及其使用示例:

一、添加 Hutool 依赖

首先,确保你的项目中引入了 Hutool 依赖。如果使用 Maven,可以在 pom.xml 中添加以下依赖

<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.8.20</version> <!-- 请使用最新版本 -->
</dependency>

二、RandomUtil 常用方法

2.1 生成随机整数

RandomUtil.randomInt(int limit):生成 [0, limit) 范围内的随机整数。

RandomUtil.randomInt(int min, int max):生成 [min, max) 范围内的随机整数。

import cn.hutool.core.util.RandomUtil;

public class RandomUtilExample {
    public static void main(String[] args) {
        // 生成 [0, 100) 的随机整数
        int randomNumber1 = RandomUtil.randomInt(100);
        System.out.println("Random number 1: " + randomNumber1);

        // 生成 [10, 20) 的随机整数
        int randomNumber2 = RandomUtil.randomInt(10, 20);
        System.out.println("Random number 2: " + randomNumber2);
    }
}

2.2 生成随机长整数

RandomUtil.randomLong(long limit):生成 [0, limit) 范围内的随机长整数。

RandomUtil.randomLong(long min, long max):生成 [min, max) 范围内的随机长整数。

long randomLong1 = RandomUtil.randomLong(1000L);
System.out.println("Random long 1: " + randomLong1);

long randomLong2 = RandomUtil.randomLong(1000L, 2000L);
System.out.println("Random long 2: " + randomLong2);

2.3 生成随机浮点数

RandomUtil.randomDouble(double limit):生成 [0, limit) 范围内的随机浮点数。

RandomUtil.randomDouble(double min, double max):生成 [min, max) 范围内的随机浮点数。

double randomDouble1 = RandomUtil.randomDouble(100.0);
System.out.println("Random double 1: " + randomDouble1);

double randomDouble2 = RandomUtil.randomDouble(10.0, 20.0);
System.out.println("Random double 2: " + randomDouble2);

2.4 生成随机布尔值

RandomUtil.randomBoolean():生成随机的 true 或 false。

boolean randomBoolean = RandomUtil.randomBoolean();
System.out.println("Random boolean: " + randomBoolean);

2.5 生成随机字符串

RandomUtil.randomString(int length):生成指定长度的随机字符串(包含字母和数字)。

RandomUtil.randomNumbers(int length):生成指定长度的随机数字字符串。

RandomUtil.randomLetters(int length):生成指定长度的随机字母字符串。

String randomString = RandomUtil.randomString(10);
System.out.println("Random string: " + randomString);

String randomNumbers = RandomUtil.randomNumbers(6);
System.out.println("Random numbers: " + randomNumbers);

String randomLetters = RandomUtil.randomLetters(8);
System.out.println("Random letters: " + randomLetters);

2.6 生成随机字节数组

RandomUtil.randomBytes(int length):生成指定长度的随机字节数组。

byte[] randomBytes = RandomUtil.randomBytes(10);
System.out.println("Random bytes: " + new String(randomBytes));

2.7 从集合中随机选择元素

RandomUtil.randomEle(List<T> list):从列表中随机选择一个元素。

RandomUtil.randomEles(List<T> list, int count):从列表中随机选择多个元素。

import java.util.Arrays;
import java.util.List;

List<String> list = Arrays.asList("Apple", "Banana", "Cherry", "Date");

String randomElement = RandomUtil.randomEle(list);
System.out.println("Random element: " + randomElement);

List<String> randomElements = RandomUtil.randomEles(list, 2);
System.out.println("Random elements: " + randomElements);

2.8 生成随机 UUID

RandomUtil.randomUUID():生成随机的 UUID。

String randomUUID = RandomUtil.randomUUID();
System.out.println("Random UUID: " + randomUUID);

三、高级用法

RandomUtil 还支持自定义随机数生成器(Random 对象),以及生成随机日期、随机颜色等功能。

import java.util.Random;

​​​​​​​// 使用自定义 Random 对象
Random customRandom = new Random();
int customRandomNumber = RandomUtil.randomInt(customRandom, 10, 20);
System.out.println("Custom random number: " + customRandomNumber);

四、总结

RandomUtil 是 Hutool 中非常实用的工具类,能够满足大多数随机数生成的需求。它的 API 设计简洁,使用方便,适合在 Java 项目中快速实现随机数相关的功能。如果你需要更复杂的随机数生成逻辑,可以结合 Java 原生的 Random 类或 ThreadLocalRandom 类来实现。

以上就是使用Hutool编写生成随机数的工具类的详细内容,更多关于Hutool随机数的资料请关注脚本之家其它相关文章!

相关文章

  • Docker DockerFile部署java jar项目包及Mysql和Redis的详细过程

    Docker DockerFile部署java jar项目包及Mysql和Redis的详细过程

    Dockerfile是一种用于构建Docker镜像的文件格式,可以通过Dockerfile部署Java项目,这篇文章主要给大家介绍了关于Docker DockerFile部署java jar项目包及Mysql和Redis的详细过程,需要的朋友可以参考下
    2023-12-12
  • 详解Spring 中如何控制2个bean中的初始化顺序

    详解Spring 中如何控制2个bean中的初始化顺序

    本篇文章主要介绍了Spring 中如何控制2个bean中的初始化顺序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • 浅析Java中Runnable和Thread的区别

    浅析Java中Runnable和Thread的区别

    在java中可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口;Thread类是在java.lang包中定义的。接下来通过本文给大家浅析Java中Runnable和Thread的区别,一起看看吧
    2017-02-02
  • Java轻松实现Excel与CSV格式互转(含批量转换)

    Java轻松实现Excel与CSV格式互转(含批量转换)

    在 Java 开发中,经常会遇到需要在 Excel 和 CSV 文件之间进行数据转换的场景,本文将分享如何在 Java 中实现单文件和批量的 Excel 与 CSV 转换方法,希望对大家有所帮助
    2025-09-09
  • Java的常用包

    Java的常用包

    本文主要对Java的常用包进行一一介绍。具有一定的参考价值,下面跟着小编一起来看下吧
    2017-01-01
  • Java多线程按指定顺序同步执行

    Java多线程按指定顺序同步执行

    这篇文章主要介绍了java多线程如何按指定顺序同步执行,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • 5分钟快速搭建SpringBoot3 + MyBatis-Plus工程/项目的实现示例

    5分钟快速搭建SpringBoot3 + MyBatis-Plus工程/项目的实现示例

    本文主要介绍了使用IntelliJ IDEA创建Spring Boot工程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-01-01
  • Java面试题-实现复杂链表的复制代码分享

    Java面试题-实现复杂链表的复制代码分享

    这篇文章主要介绍了Java面试题-实现复杂链表的复制代码分享,小编觉得还是挺不错的,具有参考价值,需要的朋友可以了解下。
    2017-10-10
  • Spring中过滤器和拦截器的区别及具体实现方式

    Spring中过滤器和拦截器的区别及具体实现方式

    在Spring框架中,和都是用于处理 HTTP 请求的中间件,但它们在作用范围、实现方式和生命周期上有显著区别,本文给大家介绍Spring中过滤器和拦截器的区别及具体实现,感兴趣的朋友一起看看吧
    2025-07-07
  • Java并发编程中的ConcurrentLinkedQueue详解

    Java并发编程中的ConcurrentLinkedQueue详解

    这篇文章主要介绍了Java并发编程中的ConcurrentLinkedQueue详解,GetThread线程不会因为ConcurrentLinkedQueue队列为空而等待,而是直接返回null,所以当实现队列不空时,等待时,则需要用户自己实现等待逻辑,需要的朋友可以参考下
    2023-12-12

最新评论