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并发编程之Executor接口的使用
Jun 21 Java/Android
自从在 IDEA 中用了热部署神器 JRebel 之后,开发效率提升了 10(真棒)
Jun 26 Java/Android
浅谈Python魔法方法
Jun 28 Java/Android
HashMap实现保存两个key相同的数据
Jun 30 Java/Android
使用springMVC所需要的pom配置
Sep 15 Java/Android
spring cloud 配置中心客户端启动遇到的问题
Sep 25 Java/Android
关于MybatisPlus配置双数据库驱动连接数据库问题
Jan 22 Java/Android
剑指Offer之Java算法习题精讲二叉树的构造和遍历
Mar 21 Java/Android
Android超详细讲解组件ScrollView的使用
Mar 31 Java/Android
SpringCloud Function SpEL注入漏洞分析及环境搭建
Apr 08 Java/Android
java开发双人五子棋游戏
May 06 Java/Android
Springboot集成kafka高级应用实战分享
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的可变变量名的使用方法分享
2012/02/05 PHP
PHP封装的一个支持HTML、JS、PHP重定向的多功能跳转函数
2014/06/19 PHP
PHP抽象类基本用法示例
2018/12/28 PHP
thinkphp5.1 框架钩子和行为用法实例分析
2020/05/25 PHP
JQuery从头学起第二讲
2010/07/04 Javascript
最好用的省市二级联动 原生js实现你值得拥有
2013/09/22 Javascript
checkbox选中与未选中判断示例
2014/08/04 Javascript
JavaScript把数组作为堆栈使用的方法
2015/03/20 Javascript
JavaScript的面向对象编程基础
2015/08/13 Javascript
JavaScript实现复制内容到粘贴板代码
2016/03/31 Javascript
JS命令模式例子之菜单程序
2016/10/10 Javascript
jQuery UI Grid 模态框中的表格实例代码
2017/04/01 jQuery
纯JS实现图片验证码功能并兼容IE6-8(推荐)
2017/04/19 Javascript
基于javascript中的typeof和类型判断(详解)
2017/10/27 Javascript
JavaScript冒泡算法原理与实现方法深入理解
2020/06/04 Javascript
Vue开发中常见的套路和技巧总结
2020/11/24 Vue.js
R语言 vs Python对比:数据分析哪家强?
2017/11/17 Python
Python 将pdf转成图片的方法
2018/04/23 Python
Python中GeoJson和bokeh-1的使用讲解
2019/01/03 Python
Python二叉树的镜像转换实现方法示例
2019/03/06 Python
Django在pycharm下修改默认启动端口的方法
2019/07/26 Python
python 读取数据库并绘图的实例
2019/12/03 Python
解决Numpy中sum函数求和结果维度的问题
2019/12/06 Python
PyTorch的SoftMax交叉熵损失和梯度用法
2020/01/15 Python
CSS3制作hover下划线动画
2017/03/27 HTML / CSS
澳大利亚在线奢侈品时尚零售平台:Azura Runway
2021/01/13 全球购物
什么是数组名
2012/05/10 面试题
shell的种类有哪些
2015/04/15 面试题
同学聚会欢迎辞
2014/01/14 职场文书
买房协议书
2014/04/11 职场文书
舞蹈兴趣小组活动总结
2014/07/07 职场文书
科学发展观标语
2014/10/08 职场文书
先进党员事迹材料
2014/12/24 职场文书
《植物妈妈有办法》教学反思
2016/02/23 职场文书
公司员工违法违章行为检讨书
2019/06/24 职场文书
使用vue-element-admin框架从后端动态获取菜单功能的实现
2021/04/29 Vue.js