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 相关文章推荐
mybatis中sql语句CDATA标签的用法说明
Jun 30 Java/Android
java调用Restful接口的三种方法
Aug 23 Java/Android
聊聊SpringBoot自动装配的魔力
Nov 17 Java/Android
springboot新建项目pom.xml文件第一行报错的解决
Jan 18 Java/Android
springboot 自定义配置 解决Boolean属性不生效
Mar 18 Java/Android
关于Mybatis中SQL节点的深入解析
Mar 19 Java/Android
Java 死锁解决方案
May 11 Java/Android
一文了解Java动态代理的原理及实现
Jul 07 Java/Android
Java实现超大Excel文件解析(XSSF,SXSSF,easyExcel)
Jul 15 Java/Android
前端与RabbitMQ实时消息推送未读消息小红点实现示例
Jul 23 Java/Android
java实现web实时消息推送的七种方案
Jul 23 Java/Android
IDEA中sout快捷键无效问题的解决方法
Jul 23 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
收音机发烧友应当熟知的100条知识
2021/03/02 无线电
用PHP生成html分页列表的代码
2007/03/18 PHP
Symfony2 session用法实例分析
2016/02/04 PHP
PHP编程之设置apache虚拟目录
2016/07/08 PHP
getElementById在任意一款浏览器中都可以用吗的疑问回复
2007/05/13 Javascript
javascript 鼠标悬浮图片显示原图 移出鼠标后原图消失(多图)
2009/12/28 Javascript
基于jquery的高性能td和input切换并可修改内容实现代码
2011/01/09 Javascript
javascript事件函数中获得事件源的两种不错方法
2014/03/17 Javascript
jQuery 顶部导航跟随滚动条滚动固定浮动在顶部
2014/06/06 Javascript
jquery增加和删除元素的方法
2015/01/14 Javascript
jQuery鼠标悬浮链接弹出跟随图片实例代码
2016/01/08 Javascript
jQuery+css实现的tab切换标签(兼容各浏览器)
2016/01/28 Javascript
微信小程序数据分析之自定义分析的实现
2018/08/17 Javascript
vue.js表单验证插件(vee-validate)的使用教程详解
2019/05/23 Javascript
浅谈vue中$event理解和框架中在包含默认值外传参
2020/08/07 Javascript
python函数装饰器用法实例详解
2015/06/04 Python
浅谈python中的getattr函数 hasattr函数
2016/06/14 Python
Python中flatten( )函数及函数用法详解
2018/11/02 Python
python利用requests库模拟post请求时json的使用教程
2018/12/07 Python
python实现学生成绩测评系统
2020/06/22 Python
IE支持HTML5的解决方法
2009/10/20 HTML / CSS
HTML5中的网络存储实现方式
2020/04/28 HTML / CSS
美国面料纺织品商城:Fabric.com
2017/06/28 全球购物
药学专业个人自我评价
2013/11/11 职场文书
大学生创业计划书的范文
2014/01/07 职场文书
小学老师寄语大全
2014/04/04 职场文书
计算机网络专业求职信
2014/06/05 职场文书
医院合作协议书
2014/08/19 职场文书
环卫工人节活动总结
2014/08/29 职场文书
“四风”查摆问题自我剖析材料
2014/09/27 职场文书
街道党工委党的群众路线教育实践活动对照检查材料思想汇报
2014/10/05 职场文书
2015学校年度工作总结
2015/05/11 职场文书
地震捐款简报
2015/07/21 职场文书
月考总结与反思
2015/10/22 职场文书
go mod 安装依赖 unkown revision问题的解决方案
2021/05/06 Golang
python之django路由和视图案例教程
2021/07/26 Python