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中的深浅拷贝问题
Jun 26 Java/Android
浅谈自定义校验注解ConstraintValidator
Jun 30 Java/Android
浅谈resultMap的用法及关联结果集映射
Jun 30 Java/Android
Java SSM配置文件案例详解
Aug 30 Java/Android
java代码实现空间切割
Jan 18 Java/Android
关于maven依赖 ${xxx.version}报错问题
Jan 18 Java/Android
JVM之方法返回地址详解
Feb 28 Java/Android
详解Spring Security中的HttpBasic登录验证模式
Mar 17 Java/Android
解决springboot druid数据库连接失败后一直重连的方法
Apr 19 Java/Android
Springboot-cli 开发脚手架,权限认证,附demo演示
Apr 28 Java/Android
一文搞懂Java中的注解和反射
Jun 21 Java/Android
OpenFeign实现远程调用
Aug 14 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字符转义相关函数小结(php下的转义字符串)
2007/04/12 PHP
thinkphp浏览历史功能实现方法
2014/10/29 PHP
php中in_array函数用法分析
2014/11/15 PHP
PHP两种快速排序算法实例
2015/02/15 PHP
php+jQuery递归调用POST循环请求示例
2016/10/14 PHP
php中用unset销毁变量并释放内存
2020/05/10 PHP
在Javascript中定义对象类别
2006/12/22 Javascript
使用EXT实现无刷新动态调用股票信息
2008/11/01 Javascript
Uglifyjs(JS代码优化工具)入门 安装使用
2020/04/13 Javascript
jQuery解析Json实例详解
2015/11/24 Javascript
JS 日期与时间戮相互转化的简单实例
2016/06/22 Javascript
js实现图片缓慢放大缩小效果
2016/08/02 Javascript
jQuery制作圣诞主题页面 更像是爱情影集
2016/08/10 Javascript
Bootstrap基本插件学习笔记之Tooltip提示工具(18)
2016/12/08 Javascript
javascript操作cookie
2017/01/17 Javascript
使用JavaScriptCore实现OC和JS交互详解
2017/03/28 Javascript
Vue的elementUI实现自定义主题方法
2018/02/23 Javascript
angular2 NgModel模块的具体使用方法
2019/04/10 Javascript
解决微信小程序云开发中获取数据库的内容为空的方法
2019/05/15 Javascript
原生JS利用transform实现banner的无限滚动示例代码
2020/06/15 Javascript
linux下安装easy_install的方法
2013/02/10 Python
Python面向对象编程基础解析(二)
2017/10/26 Python
Python 删除连续出现的指定字符的实例
2018/06/29 Python
python循环嵌套的多种使用方法解析
2019/11/29 Python
python GUI库图形界面开发之PyQt5表格控件QTableView详细使用方法与实例
2020/03/01 Python
python框架Django实战商城项目之工程搭建过程图文详解
2020/03/09 Python
HTML5 Canvas锯齿图代码实例
2014/04/10 HTML / CSS
亚历山大·王官网:Alexander Wang
2017/06/23 全球购物
SmartBuyGlasses英国:购买太阳镜和眼镜
2018/01/29 全球购物
Baracuta官方网站:Harrington夹克,G9,G4,G10等
2018/03/06 全球购物
日本索尼音乐商店:Sony Music Shop
2018/07/17 全球购物
Speedo速比涛德国官方网站:世界领先的泳装品牌
2019/08/26 全球购物
预备党员承诺书
2014/03/25 职场文书
"9.18"国耻日演讲稿范文
2014/09/14 职场文书
辞旧迎新演讲稿
2014/09/15 职场文书
预备党员的思想汇报,你真的会写吗?
2019/06/28 职场文书