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 相关文章推荐
Spring Boot 启动、停止、重启、状态脚本
Jun 26 Java/Android
SpringBoot实现异步事件驱动的方法
Jun 28 Java/Android
Java基础之线程锁相关知识总结
Jun 30 Java/Android
详解Java ES多节点任务的高效分发与收集实现
Jun 30 Java/Android
JavaGUI模仿QQ聊天功能完整版
Jul 04 Java/Android
java设计模式--原型模式详解
Jul 21 Java/Android
SpringRetry重试框架的具体使用
Jul 25 Java/Android
springboot+WebMagic+MyBatis爬虫框架的使用
Aug 07 Java/Android
IDEA2021.2配置docker如何将springboot项目打成镜像一键发布部署
Sep 25 Java/Android
使用Java去实现超市会员管理系统
Mar 18 Java/Android
Java工作中实用的代码优化技巧分享
Apr 21 Java/Android
java实现自定义时钟并实现走时功能
Jun 21 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下操作Linux消息队列完成进程间通信的方法
2010/07/24 PHP
php多文件上传功能实现原理及代码
2013/04/18 PHP
PHP实现对文本数据库的常用操作方法实例演示
2014/07/04 PHP
百度地图API使用方法详解
2015/08/25 PHP
PHP实现的AES加密、解密封装类与用法示例
2018/08/02 PHP
Laravel 修改默认日志文件名称和位置的例子
2019/10/17 PHP
laravel-admin 实现在指定的相册下添加照片
2019/10/21 PHP
jQuery EasyUI API 中文文档 - ComboTree组合树
2011/10/11 Javascript
jQuery实现级联菜单效果(仿淘宝首页菜单动画)
2014/04/10 Javascript
JavaScript中九种常用排序算法
2014/09/02 Javascript
JavaScript中获取Radio被选中的值
2015/11/11 Javascript
javascript设置页面背景色及背景图片的方法
2015/12/29 Javascript
精通JavaScript的this关键字
2020/05/28 Javascript
js前端解决跨域问题的8种方案(最新最全)
2016/11/18 Javascript
Bootstrap开发中Tab标签页切换图表显示问题的解决方法
2018/07/13 Javascript
详解vuex之store拆分即多模块状态管理(modules)篇
2018/11/13 Javascript
Electron vue的使用教程图文详解
2019/07/05 Javascript
Python将图片批量从png格式转换至WebP格式
2020/08/22 Python
django使用图片延时加载引起后台404错误
2017/04/18 Python
python引入导入自定义模块和外部文件的实例
2017/07/24 Python
对python中dict和json的区别详解
2018/12/18 Python
pandas 对日期类型数据的处理方法详解
2019/08/08 Python
基于python爬取有道翻译过程图解
2020/03/31 Python
python模块如何查看
2020/06/16 Python
python Pexpect模块的使用
2020/12/25 Python
如何用python实现一个HTTP连接池
2021/01/14 Python
全球性的在线时尚男装零售商:boohooMAN
2016/12/17 全球购物
2013年军训通讯稿
2014/02/05 职场文书
安全生产管理合理化建议书
2014/03/12 职场文书
工商行政管理专业求职书
2014/05/23 职场文书
行政执法作风整顿剖析材料
2014/10/11 职场文书
推普标语口号大全
2015/12/26 职场文书
如何判断pytorch是否支持GPU加速
2021/06/01 Python
浅谈Python数学建模之固定费用问题
2021/06/23 Python
Typescript类型系统FLOW静态检查基本规范
2022/05/25 Javascript
MySQL分布式恢复进阶
2022/07/23 MySQL