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 Nio使用NioSocket客户端与服务端交互实现方式
Jun 15 Java/Android
Spring整合Mybatis的全过程
Jun 28 Java/Android
jackson json序列化实现首字母大写,第二个字母需小写
Jun 29 Java/Android
Springboot使用Spring Data JPA实现数据库操作
Jun 30 Java/Android
Java面试题冲刺第十九天--数据库(4)
Aug 07 Java/Android
Java生成日期时间存入Mysql数据库的实现方法
Mar 03 Java/Android
使用HttpSessionListener监听器实战
Mar 17 Java/Android
Java对文件的读写操作方法
Apr 29 Java/Android
Spring IOC容器Bean的作用域及生命周期实例
May 30 Java/Android
Java中生成微信小程序太阳码的实现方案
Jun 01 Java/Android
Android中View.post和Handler.post的关系
Jun 05 Java/Android
Android开发EditText禁止输入监听及InputFilter字符过滤
Jun 10 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 session 检测和注销
2009/03/16 PHP
详解PHP内置访问资源的超时时间 time_out file_get_contents read_file
2013/06/03 PHP
PHP获取mysql数据表的字段名称和详细信息的方法
2014/09/27 PHP
php简单获取复选框值的方法
2016/05/11 PHP
js数组中如何随机取出一个值
2014/06/13 Javascript
JavaScript简单下拉菜单实例代码
2015/09/07 Javascript
javascript数据类型验证方法
2015/12/31 Javascript
JavaScript实现经典排序算法之插入排序
2016/12/28 Javascript
深入理解Javascript中的valueOf与toString
2017/01/04 Javascript
angular-cli修改端口号【angular2】
2017/04/19 Javascript
vue项目在安卓低版本机显示空白的原因分析(两种)
2018/09/04 Javascript
微信小程序实现列表页的点赞和取消点赞功能
2018/11/02 Javascript
浅谈Vue CLI 3结合Lerna进行UI框架设计
2019/04/14 Javascript
详解Vue中的基本语法和常用指令
2019/07/23 Javascript
Javascript var变量删除原理及实现
2020/08/26 Javascript
node中短信api实现验证码登录的示例代码
2021/01/20 Javascript
[40:29]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第一场
2018/04/10 DOTA
[46:59]完美世界DOTA2联赛PWL S2 GXR vs Ink 第二场 11.19
2020/11/20 DOTA
[39:53]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第一场 11.19
2020/11/19 DOTA
Python 字符串操作方法大全
2014/03/11 Python
详解使用pymysql在python中对mysql的增删改查操作(综合)
2017/01/18 Python
python 对key为时间的dict排序方法
2018/10/17 Python
pandas 对group进行聚合的例子
2019/12/27 Python
利用Python裁切tiff图像且读取tiff,shp文件的实例
2020/03/10 Python
css3实现文字首尾衔接跑马灯的示例代码
2020/10/16 HTML / CSS
小米官方旗舰店:Xiaomi
2020/08/07 全球购物
自我鉴定三原则
2014/01/13 职场文书
干部下基层实施方案
2014/03/14 职场文书
大学校务公开实施方案
2014/03/31 职场文书
大学社团计划书
2014/05/01 职场文书
党支部工作总结2015
2015/04/01 职场文书
火烧圆明园的观后感
2015/06/03 职场文书
如何使用Python提取Chrome浏览器保存的密码
2021/06/09 Python
Python人工智能之混合高斯模型运动目标检测详解分析
2021/11/07 Python
Linux安装apache服务器的配置过程
2021/11/27 Servers
ant design charts 获取后端接口数据展示
2022/05/25 Javascript