You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Java中从指定数字集合生成随机数?求简单示例

从指定数字集合生成随机数的Java实现

没问题呀!你完全可以从给定的数字集合里随机选取一个数字。Java提供了不少工具类来实现这个需求,下面给你两个简单易懂的示例:

基础实现(使用Random类)

这是最常用的方式,适合单线程场景:

import java.util.ArrayList;
import java.util.Random;

public class RandomNumberFromSet {
    public static void main(String[] args) {
        // 定义你的目标数字集合
        ArrayList<Integer> numberSet = new ArrayList<>();
        numberSet.add(5);
        numberSet.add(50);
        numberSet.add(20);

        // 初始化Random实例
        Random random = new Random();
        // 生成0到集合长度-1的随机索引(确保不会越界)
        int randomIndex = random.nextInt(numberSet.size());
        // 根据随机索引获取对应数字
        int randomNumber = numberSet.get(randomIndex);

        // 输出结果
        System.out.println("随机选取的数字是:" + randomNumber);
    }
}

优化实现(使用ThreadLocalRandom类)

如果你的代码运行在多线程环境下,推荐用ThreadLocalRandom,它的性能比Random更好:

import java.util.ArrayList;
import java.util.concurrent.ThreadLocalRandom;

public class RandomNumberFromSet {
    public static void main(String[] args) {
        ArrayList<Integer> numberSet = new ArrayList<>();
        numberSet.add(5);
        numberSet.add(50);
        numberSet.add(20);

        // 直接获取当前线程的ThreadLocalRandom实例,生成有效索引
        int randomIndex = ThreadLocalRandom.current().nextInt(numberSet.size());
        int randomNumber = numberSet.get(randomIndex);

        System.out.println("随机选取的数字是:" + randomNumber);
    }
}

核心逻辑说明

  • 先把指定数字存入集合(这里用ArrayList,你也可以用数组或者其他集合类型);
  • 通过随机数生成器获取一个合法的集合索引(范围是0到集合大小-1);
  • 利用索引从集合中取出对应的随机数字,这样就保证了每次取到的都是集合里的元素。

内容的提问来源于stack exchange,提问作者Dipendra Ranamagar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:03:14