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实现
Jun 26 Java/Android
elasticSearch-api的具体操作步骤讲解
Jun 28 Java/Android
新手初学Java网络编程
Jul 07 Java/Android
小程序与后端Java接口交互实现HelloWorld入门
Jul 09 Java/Android
Java比较两个对象中全部属性值是否相等的方法
Aug 07 Java/Android
SpringBoot2零基础到精通之数据与页面响应
Mar 22 Java/Android
springboot layui hutool Excel导入的实现
Mar 31 Java/Android
Elasticsearch 配置详解
Apr 19 Java/Android
SpringBoot 集成短信和邮件 以阿里云短信服务为例
Apr 22 Java/Android
java版 简单三子棋游戏
May 04 Java/Android
Android实现图片九宫格
Jun 28 Java/Android
java实现web实时消息推送的七种方案
Jul 23 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 抓取新浪读书频道的小说并生成txt电子书的代码
2009/12/18 PHP
PHP Memcached应用实现代码
2010/02/08 PHP
使用php实现下载生成某链接快捷方式的解决方法
2013/05/07 PHP
php实现推荐功能的简单实例
2019/09/29 PHP
tp5框架基于ajax实现异步删除图片的方法示例
2020/02/10 PHP
Jquery判断$(&quot;#id&quot;)获取的对象是否存在的方法
2013/09/25 Javascript
jquery的ajax和getJson跨域获取json数据的实现方法
2014/02/04 Javascript
javascript从image转换为base64位编码的String
2014/07/29 Javascript
用js提交表单解决一个页面有多个提交按钮的问题
2014/09/01 Javascript
js面向对象之静态方法和静态属性实例分析
2015/01/10 Javascript
js实现仿Windows风格选项卡和按钮效果实例
2015/05/13 Javascript
TypeError document.getElementById(...) is null错误原因
2015/05/18 Javascript
js图片跟随鼠标移动代码
2015/11/26 Javascript
AngularJS通过$sce输出html的方法
2016/09/22 Javascript
jQuery实现简易的输入框字数计数功能示例
2017/01/16 Javascript
jQuery实现验证表单密码一致性及正则表达式验证邮箱、手机号的方法
2017/12/05 jQuery
JS复杂判断的更优雅写法代码详解
2018/11/07 Javascript
使用vue制作滑动标签
2019/09/21 Javascript
Ant Design Vue table中列超长显示...并加提示语的实例
2020/10/31 Javascript
js实现简单的轮播图效果
2020/12/13 Javascript
Python设计模式编程中Adapter适配器模式的使用实例
2016/03/02 Python
Python 中的range(),以及列表切片方法
2018/07/02 Python
pyqt5 实现在别的窗口弹出进度条
2019/06/18 Python
python3 实现口罩抽签的功能
2020/03/11 Python
CSS3实现王者匹配时的粒子动画效果
2019/04/12 HTML / CSS
HTML5+JS实现俄罗斯方块原理及具体步骤
2013/11/29 HTML / CSS
Fabletics官网:美国运动服饰品牌,由好莱坞女演员凯特·哈德森创立
2019/10/19 全球购物
在数据文件自动增长时,自动增长是否会阻塞对文件的更新
2014/05/01 面试题
J2EE包括哪些技术
2016/11/25 面试题
事业单位个人应聘自荐信
2013/09/21 职场文书
领导的自我鉴定
2013/12/28 职场文书
会计专业毕业生求职信分享
2014/01/03 职场文书
防汛工作情况汇报
2014/10/28 职场文书
2016年乡镇综治宣传月活动总结
2016/03/16 职场文书
驾驶员安全责任协议书
2016/03/22 职场文书
个人销售励志奋斗口号
2019/12/05 职场文书