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 相关文章推荐
springboot中一些比较常用的注解总结
Jun 11 Java/Android
Spring Data JPA使用JPQL与原生SQL进行查询的操作
Jun 15 Java/Android
浅谈@Value和@Bean的执行顺序问题
Jun 16 Java/Android
使用feign服务调用添加Header参数
Jun 23 Java/Android
Java常用工具类汇总 附示例代码
Jun 26 Java/Android
Java实现多文件上传功能
Jun 30 Java/Android
Log4j.properties配置及其使用
Aug 02 Java/Android
Java比较两个对象中全部属性值是否相等的方法
Aug 07 Java/Android
关于@OnetoMany关系映射的排序问题,使用注解@OrderBy
Dec 06 Java/Android
springboot layui hutool Excel导入的实现
Mar 31 Java/Android
mybatis 获取更新记录的id
May 20 Java/Android
Java处理延时任务的常用几种解决方案
Jun 01 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
SONY ICF-SW7600的电路分析
2021/03/02 无线电
Windows Apache2.2.11及Php5.2.9-1的安装与配置方法
2009/06/08 PHP
php数组使用规则分析
2015/02/27 PHP
PHP如何通过AJAX方式实现登录功能
2015/11/23 PHP
php 使用redis锁限制并发访问类示例
2016/11/02 PHP
PHP实现的mysql操作类【MySQL与MySQLi方式】
2017/10/07 PHP
Laravel 创建可以传递参数 Console服务的例子
2019/10/14 PHP
JavaScript While 循环基础教程
2007/04/05 Javascript
jquery 元素相对定位代码
2010/10/15 Javascript
阻止子元素继承父元素事件具体思路及实现
2013/05/02 Javascript
jquery 实现上下滚动效果示例代码
2013/08/09 Javascript
javascript在网页中实现读取剪贴板粘贴截图功能
2014/06/07 Javascript
iframe里使用JavaScript控制主页转向的方法
2015/04/03 Javascript
Angularjs全局变量被作用域监听的正确姿势
2016/02/06 Javascript
jquery zTree异步加载简单实例讲解
2016/02/25 Javascript
后端接收不到AngularJs中$http.post发送的数据原因分析及解决办法
2016/07/05 Javascript
深入剖析JavaScript面向对象编程
2016/07/12 Javascript
详解ES6中的三种异步解决方案
2018/06/28 Javascript
js使用cookie实现记住用户名功能示例
2019/06/13 Javascript
vue-dplayer 视频播放器实例代码
2019/11/08 Javascript
JavaScript或jQuery 获取option value值方法解析
2020/05/12 jQuery
基于javascript处理二进制图片流过程详解
2020/06/08 Javascript
Vue的Options用法说明
2020/08/14 Javascript
[52:29]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#3Secret VS OG第三局
2016/03/03 DOTA
Python实现点阵字体读取与转换的方法
2019/01/29 Python
pandas如何处理缺失值
2019/07/31 Python
django和vue实现数据交互的方法
2019/08/21 Python
windows上彻底删除jupyter notebook的实现
2020/04/13 Python
HTML中fieldset标签概述及使用方法
2013/02/01 HTML / CSS
怎样建立和理解非常复杂的声明?例如定义一个包含N 个指向返回 指向字符的指针的函数的指针的数组?
2013/03/19 面试题
大学毕业生自我鉴定
2013/11/05 职场文书
经济管理专业毕业生推荐信
2013/11/11 职场文书
班长竞选演讲稿
2014/04/24 职场文书
个人授权委托书范本
2014/09/14 职场文书
员工拾金不昧表扬稿
2015/05/05 职场文书
nginx访问报403错误的几种情况详解
2022/07/23 Servers