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同步系列之synchronized解析
Jun 28 Java/Android
Java基础之线程锁相关知识总结
Jun 30 Java/Android
mybatis 解决从列名到属性名的自动映射失败问题
Jun 30 Java/Android
java设计模式--建造者模式详解
Jul 21 Java/Android
SpringBoot整合RabbitMQ的5种模式实战
Aug 02 Java/Android
InterProcessMutex实现zookeeper分布式锁原理
Mar 21 Java/Android
剑指Offer之Java算法习题精讲二叉树专项训练
Mar 21 Java/Android
Java 超详细讲解设计模式之中的抽象工厂模式
Mar 25 Java/Android
详解Flutter自定义应用程序内键盘的实现方法
Jun 14 Java/Android
java实现web实时消息推送的七种方案
Jul 23 Java/Android
volatile保证可见性及重排序方法
Aug 05 Java/Android
SpringBoot Http远程调用的方法
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
给多个地址发邮件的类
2006/10/09 PHP
php自定义加密与解密程序实例
2014/12/31 PHP
CI框架源码解读之URI.php中_fetch_uri_string()函数用法分析
2016/05/18 PHP
asp函数split()对应php函数explode()
2019/02/27 PHP
jQuery的attr与prop使用介绍
2013/10/10 Javascript
node.js下when.js 的异步编程实践
2014/12/03 Javascript
javascript中数组的定义及使用实例
2015/01/21 Javascript
JavaScript判断按钮被点击的方法
2015/12/13 Javascript
jquery表格datatables实例解析 直接加载和延迟加载
2016/08/12 Javascript
jQuery中select与datalist制作下拉菜单时的区别浅析
2016/12/30 Javascript
react 实现页面代码分割、按需加载的方法
2018/04/03 Javascript
vue内置组件transition简单原理图文详解(小结)
2018/07/12 Javascript
JQuery样式操作、click事件以及索引值-选项卡应用示例
2019/05/14 jQuery
使用watch在微信小程序中实现全局状态共享
2019/06/03 Javascript
vue history 模式打包部署在域名的二级目录的配置指南
2019/07/02 Javascript
微信小程序实现传递多个参数与事件处理
2019/08/12 Javascript
解决Python中字符串和数字拼接报错的方法
2016/10/23 Python
python3实现跳一跳点击跳跃
2018/01/08 Python
Python使用post及get方式提交数据的实例
2019/01/24 Python
python实现列表的排序方法分享
2019/07/01 Python
pyinstaller参数介绍以及总结详解
2019/07/12 Python
python对矩阵进行转置的2种处理方法
2019/07/17 Python
django框架面向对象ORM模型继承用法实例分析
2019/07/29 Python
Django之编辑时根据条件跳转回原页面的方法
2019/08/21 Python
使用Python实现分别输出每个数组
2019/12/06 Python
canvas环形倒计时组件的示例代码
2018/06/14 HTML / CSS
UGG澳洲官网:UGG Australia
2018/04/26 全球购物
Nike瑞士官网:Nike CH
2021/01/18 全球购物
2014年小学植树节活动方案
2014/03/02 职场文书
科技之星事迹材料
2014/06/02 职场文书
服务标语大全
2014/06/18 职场文书
党旗在我心中演讲稿
2014/09/15 职场文书
2014年行政人事工作总结
2014/12/09 职场文书
2016学习依法治国心得体会
2016/01/15 职场文书
Python Pandas pandas.read_sql函数实例用法
2021/06/21 Python
Python中rapidjson参数校验实现
2021/07/25 Python