Java中的随机数Random


Posted in Java/Android onMarch 17, 2022

一个用于生成随机数的类

具体用法:

  //创建随机数对象
        Random random = new Random();

        //随机产生一个int类型取值范围内的数字。
        int num1 = random.nextInt();
        System.out.println(num1);

        //产生一个[0-100]之间的随机数
        int num2 = random.nextInt(101);
        System.out.println(num2);//不包括101

写一个不含重复数字的随机数组

第一种:

int[] num = new int[5];
        boolean flag = true;
        Random random = new Random();
        for (int i = 0; i < num.length; i++) {
            int a = random.nextInt(5);
            for (int j = i - 1; j >= 0; j--) {//当i == 0 的时候这一步不执行
                if (a == num[j]) {
                    flag = false;
                }
            }
            if (flag) {
                num[i] = a;
            } else {
                i--;
                flag = true;
            }
        }
                System.out.println(Arrays.toString(num));

第一种方法的改进:

public static void main(String[] args) {
        int[] num = new int[5];
        Random random = new Random();

        int index = 0;
        while (index < num.length) {
            int a = random.nextInt(5);
            if (contains(num, index, a)) { //把判断有没有变成了一个方法
                num[index++] = a;
            }
        }
        System.out.println(Arrays.toString(num));
    }

    public static boolean contains(int[] a, int index, int temp) {
        for (int i = index - 1; i >= 0; i--) {
            if (temp == a[i]) {
                return false;
            }
        }
        return true;
    }

第二种:

不推荐这种方法,虽然使用了Arrays自带的方法 ,但是这个方法的除最后一个元素以外的元素都是排好序的

这种随机有点不严谨

public static void main(String[] args) {
        int[] a = new int[5];
        Random random = new Random();
        int index = -1;
        while(index < a.length -1){
            int b = random.nextInt(5);
            if(contains(a,b,index)){
                a[++index] = b;
            }
        }
        System.out.println(Arrays.toString(a));
    }
    public static boolean contains(int[] a , int b , int index){
        if (index < 0){
            return true;
        }
            Arrays.sort(a,0,index + 1);//下标为[0,index+1)的数组排序 不包含index+1
        return Arrays.binarySearch(a,0,index + 1,b) < 0;//二分法查找下标为[0,index+1)范围内是否包含b  
    }

到此这篇关于Java中的随机数Random的文章就介绍到这了,更多相关随机数Random内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Java/Android 相关文章推荐
分析Java中Map的遍历性能问题
Jun 26 Java/Android
springboot 启动如何排除某些bean的注入
Aug 02 Java/Android
SpringMVC 整合SSM框架详解
Aug 30 Java/Android
OpenCV实现反阈值二值化
Nov 17 Java/Android
正则表达式拆分url实例代码
Feb 24 Java/Android
Spring this调用当前类方法无法拦截的示例代码
Mar 20 Java/Android
Spring Boot 底层原理基础深度解析
Apr 03 Java/Android
Spring Security使用单点登录的权限功能
Apr 03 Java/Android
Java8 Stream API 提供了一种高效且易于使用的处理数据的方式
Apr 13 Java/Android
详细介绍Java中的CyclicBarrier
Apr 13 Java/Android
Java数组详细介绍及相关工具类
Apr 14 Java/Android
Android存储中最基本的文件存储方式
Apr 30 Java/Android
SpringBoot中HttpSessionListener的简单使用方式
Mar 17 #Java/Android
SpringBoot+Redis实现布隆过滤器的示例代码
Mar 17 #Java/Android
Java9新特性对HTTP2协议支持与非阻塞HTTP API
Java练习之潜艇小游戏的实现
Mar 16 #Java/Android
你知道Java Spring的两种事务吗
Java并发编程之原子性-Atomic的使用
Java9新特性之Module模块化编程示例演绎
Mar 16 #Java/Android
You might like
PHP安装问题
2006/10/09 PHP
功能强大的php文件上传类
2016/08/29 PHP
php中array_slice和array_splice函数解析
2016/10/18 PHP
Laravel框架学习笔记之批量更新数据功能
2019/05/30 PHP
gearman中任务的优先级和返回状态实例分析
2020/02/27 PHP
PHP 范围解析操作符(::)用法分析【访问静态成员和类常量】
2020/04/14 PHP
javascript 树控件 比较好用
2009/06/11 Javascript
Jquery选择子控件&quot;大于号&quot;和&quot; &quot;区别介绍及使用示例
2013/06/25 Javascript
js实现文本框支持加减运算的方法
2015/08/19 Javascript
详解JavaScript对象和数组
2015/12/03 Javascript
jquery Deferred 快速解决异步回调的问题
2016/04/05 Javascript
详解微信小程序 template添加绑定事件
2017/06/23 Javascript
关于JS与jQuery中的文档加载问题
2017/08/22 jQuery
vue基础之模板和过滤器用法实例分析
2019/03/12 Javascript
Ajax请求时无法重定向的问题解决代码详解
2019/06/21 Javascript
浅谈关于vue中scss公用的解决方案
2019/12/02 Javascript
Vue自定义表单内容检查rules实例
2020/10/30 Javascript
wxpython 学习笔记 第一天
2009/02/09 Python
跟老齐学Python之有点简约的元组
2014/09/24 Python
Python实现简单拆分PDF文件的方法
2015/07/30 Python
python3+mysql查询数据并通过邮件群发excel附件
2018/02/24 Python
python微信跳一跳系列之棋子定位颜色识别
2018/02/26 Python
Python Pandas 获取列匹配特定值的行的索引问题
2019/07/01 Python
python的几种矩阵相乘的公式详解
2019/07/10 Python
python中栈的原理及实现方法示例
2019/11/27 Python
python 实现有道翻译功能
2021/02/26 Python
Flask中jinja2的继承实现方法及实例
2021/03/03 Python
世界领先的26岁以下学生和青少年旅行预订网站:StudentUniverse
2018/07/01 全球购物
神话般的珠宝:Ross-Simons
2020/07/13 全球购物
工厂实习感言
2014/01/14 职场文书
中学生获奖感言
2014/02/04 职场文书
公司股份合作协议书
2014/12/07 职场文书
不同意离婚代理词
2015/05/23 职场文书
我在伊朗长大观后感
2015/06/16 职场文书
行为规范主题班会
2015/08/13 职场文书
幼儿园2016圣诞节活动总结
2016/03/31 职场文书