使用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随机数的资料请关注脚本之家其它相关文章!

相关文章

  • Java日常练习题,每天进步一点点(33)

    Java日常练习题,每天进步一点点(33)

    下面小编就为大家带来一篇Java基础的几道练习题(分享)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望可以帮到你
    2021-07-07
  • maven如何在tomcat8中实现自动部署

    maven如何在tomcat8中实现自动部署

    本篇文章主要介绍了maven如何在tomcat8中实现自动部署,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • Java通过索引值实现约瑟夫环算法

    Java通过索引值实现约瑟夫环算法

    这篇文章主要介绍了Java通过索引值实现约瑟夫环,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • 深度剖析Java中的内存原型及工作原理

    深度剖析Java中的内存原型及工作原理

    这篇文章主要介绍了深度剖析Java中的内存原型及工作原理,本文讲解了java虚拟机内存原型、常量池、Java内存分配中的栈、Java内存分配中的堆等内容,需要的朋友可以参考下
    2015-01-01
  • Java程序中Doc文档注释示例教程

    Java程序中Doc文档注释示例教程

    这篇文章主要为大家介绍了Java程序中Doc文档注释的示例教程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2021-10-10
  • 相册管理系统(Java表单+xml数据库存储)

    相册管理系统(Java表单+xml数据库存储)

    这篇文章主要为大家详细介绍了相册管理系统的实现步骤,Java表单的文件上传和下载,xml数据库存储信息,感兴趣的小伙伴们可以参考一下
    2016-07-07
  • Java 在 Array 和 Set 之间进行转换的示例

    Java 在 Array 和 Set 之间进行转换的示例

    这篇文章主要介绍了Java如何在Array和Set之间进行转换,在本文章中,我们对如何在 Java 中对Array和Set进行转换进行一些说明和示例,需要的朋友可以参考下
    2023-05-05
  • Spring中使用atomikos+druid实现经典分布式事务的方法

    Spring中使用atomikos+druid实现经典分布式事务的方法

    这篇文章主要介绍了Spring中使用atomikos+druid实现经典分布式事务的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-06-06
  • SpringBoot集成RabbitMQ和概念介绍

    SpringBoot集成RabbitMQ和概念介绍

    这篇文章主要介绍了SpringBoot集成RabbitMQ和概念介绍,RabbitMQ即一个消息队列,主要是用来实现应用程序的异步和解耦,同时也能起到消息缓冲,消息分发的作用。更多相关内容需要的小伙伴可以参考一下下面文章内容
    2022-05-05
  • Java Spring MVC获取请求数据详解操作

    Java Spring MVC获取请求数据详解操作

    Spring MVC 是 Spring 提供的一个基于 MVC 设计模式的轻量级 Web 开发框架,本质上相当于 Servlet,Spring MVC 角色划分清晰,分工明细。由于 Spring MVC 本身就是 Spring 框架的一部分,可以说和 Spring 框架是无缝集成
    2021-11-11

最新评论