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实战之用Swing实现通讯录管理系统
Jun 13 Java/Android
解析Java中的static关键字
Jun 14 Java/Android
SpringCloud Alibaba项目实战之nacos-server服务搭建过程
Jun 21 Java/Android
Java如何实现树的同构?
Jun 22 Java/Android
Java SSH 秘钥连接mysql数据库的方法
Jun 28 Java/Android
Spring Boot 整合 Apache Dubbo的示例代码
Jul 04 Java/Android
SpringRetry重试框架的具体使用
Jul 25 Java/Android
Java设计模式之享元模式示例详解
Mar 03 Java/Android
Java基于Dijkstra算法实现校园导游程序
Mar 17 Java/Android
Elasticsearch 配置详解
Apr 19 Java/Android
springcloud整合seata
May 20 Java/Android
SpringBoot项目多数据源及mybatis 驼峰失效的问题解决方法
Jul 07 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
处理单名多值表单的详解
2013/06/08 PHP
JS实现浏览器菜单命令
2006/09/05 Javascript
我的javascript 函数链之演变
2011/04/07 Javascript
JavaScript实现自己的DOM选择器原理及代码
2013/03/04 Javascript
简体中文转换繁体中文(实现代码)
2013/12/25 Javascript
js使用post 方式打开新窗口
2015/02/26 Javascript
js实现文字跟随鼠标移动而移动的方法
2015/02/28 Javascript
JavaScript 实现完美兼容多浏览器的复制功能代码
2015/04/28 Javascript
jquery.fastLiveFilter.js实现输入自动过滤的方法
2015/08/11 Javascript
jquery实现简单合拢与展开网页面板的方法
2015/09/01 Javascript
JS实现不使用图片仿Windows右键菜单效果代码
2015/10/22 Javascript
整理Javascript流程控制语句学习笔记
2015/11/29 Javascript
vue.js实现刷新当前页面的方法教程
2017/07/05 Javascript
vuejs+element-ui+laravel5.4上传文件的示例代码
2017/08/12 Javascript
微信小程序获取循环元素id以及wx.login登录操作
2017/08/17 Javascript
ztree实现左边动态生成树右边为内容详情功能
2017/11/03 Javascript
利用vue + element实现表格分页和前端搜索的方法
2017/12/25 Javascript
微信小程序 拍照或从相册选取图片上传代码实例
2019/08/28 Javascript
javascript 原型与原型链的理解及实例分析
2019/11/23 Javascript
基于JavaScript实现简单的轮播图
2021/03/03 Javascript
开始着手第一个Django项目
2015/07/15 Python
python实现三次样条插值
2018/12/17 Python
Python实现微信好友的数据分析
2019/12/16 Python
Python使用re模块验证危险字符
2020/05/21 Python
python中return如何写
2020/06/18 Python
python实现发送邮件
2021/03/02 Python
Html5移动端div固定到底部实现底部导航条的几种方式
2021/03/09 HTML / CSS
美国时尚女装在线:Missguided
2016/12/03 全球购物
Bergfreunde丹麦:登山装备网上零售商
2017/02/26 全球购物
高中数学教学反思
2014/01/30 职场文书
领导干部保密承诺书
2014/08/30 职场文书
县委常委班子专题民主生活会查摆问题及整改措施
2014/09/27 职场文书
2014年高三班主任工作总结
2014/12/05 职场文书
八年级上册语文教学计划
2015/01/22 职场文书
百日宴上的祝酒词
2015/08/10 职场文书
java解析XML详解
2021/07/09 Java/Android