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中Collection的一些常用方法总结
Jun 13 Java/Android
Java常用工具类汇总 附示例代码
Jun 26 Java/Android
springboot拦截器无法注入redisTemplate的解决方法
Jun 27 Java/Android
Java org.w3c.dom.Document 类方法引用报错
Aug 07 Java/Android
JPA 通过Specification如何实现复杂查询
Nov 23 Java/Android
RestTemplate如何通过HTTP Basic Auth认证示例说明
Mar 17 Java/Android
Spring Boot 底层原理基础深度解析
Apr 03 Java/Android
Android在Sqlite3中的应用及多线程使用数据库的建议
Apr 24 Java/Android
Mybatis-plus配置分页插件返回统一结果集
Jun 21 Java/Android
Java+swing实现抖音上的表白程序详解
Jun 25 Java/Android
Java获取字符串编码格式实现思路
Sep 23 Java/Android
Mybatis 一级缓存和二级缓存原理区别
Sep 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+AJAX实现无刷新注册(带用户名实时检测)
2006/12/02 PHP
关于PHP转换超过2038年日期出错的问题解决
2017/06/28 PHP
PHP实现的获取文件mimes类型工具类示例
2018/04/08 PHP
php+mysql开发的最简单在线题库(在线做题系统)完整案例
2019/03/30 PHP
PHP中SESSION过期设置
2021/03/09 PHP
xmlHTTP实例
2006/10/24 Javascript
JavaScript OOP面向对象介绍
2010/12/02 Javascript
高效的表格行背景隔行变色及选定高亮的JS代码
2010/12/04 Javascript
js中判断Object、Array、Function等引用类型对象是否相等
2012/08/29 Javascript
javascript中的作用域和上下文使用简要概述
2013/12/05 Javascript
jQuery中innerHeight()方法用法实例
2015/01/19 Javascript
jfreechart插件将数据展示成饼状图、柱状图和折线图
2015/04/13 Javascript
javascript每日必学之基础入门
2016/02/16 Javascript
全面解析Bootstrap表单样式的使用
2016/09/09 Javascript
JS实现随机颜色的3种方法与颜色格式的转化
2017/01/05 Javascript
利用Vue.js+Node.js+MongoDB实现一个博客系统(附源码)
2017/04/24 Javascript
Textarea输入字数限制实例(兼容iOS&amp;安卓)
2017/07/06 Javascript
vue.js实例对象+组件树的详细介绍
2017/10/20 Javascript
vue3.0 CLI - 2.2 - 组件 home.vue 的初步改造
2018/09/14 Javascript
12个提高JavaScript技能的概念(小结)
2019/05/09 Javascript
layui字体图标 loading图标静止不旋转的解决方法
2019/09/23 Javascript
Vue中使用Echarts仪表盘展示实时数据的实现
2020/11/01 Javascript
JavaScript语法约定和程序调试原理解析
2020/11/03 Javascript
python将人民币转换大写的脚本代码
2013/02/10 Python
python实现的简单文本类游戏实例
2015/04/28 Python
Pycharm2017版本设置启动时默认自动打开项目的方法
2018/10/29 Python
python获取本机所有IP地址的方法
2018/12/26 Python
Python进阶之迭代器与迭代器切片教程
2020/01/29 Python
解决Jupyter无法导入已安装的 module问题
2020/04/17 Python
python实现代码审查自动回复消息
2021/02/01 Python
Vivo俄罗斯官方在线商店:中国智能手机品牌
2019/10/04 全球购物
初中科学教学反思
2014/01/21 职场文书
学习之星事迹材料
2014/05/17 职场文书
社区文艺活动方案
2014/08/19 职场文书
放飞梦想演讲稿600字
2014/08/26 职场文书
《青山不老》教学反思
2016/02/22 职场文书