Java基础知识强化82:Random类概述和方法使用
1. Random类
- public class Random extends Object implements Serializable;
此类的实例用于生成伪随机数流。此类使用48位种子。
(1)Random类概述
• 此类用于产生随机数
• 如果用相同的种子创建两个Random实例,则对每个实例进行相同的方法调用序列,它们将生成并返回相同的数字序列。
(2)Random的构造方法
• public Random():没有给种子,用的就是默认种子,是当前时间的毫秒值
• public Random(long seed):给固定的种子seed
种子:一般计算机的随机数都是伪随机数,以一个真随机数(种子)作为初始条件,然后用一定的算法不停迭代产生随机数。
(3)Random成员方法
- public int nextInt(): 返回是int范围内的随机数
- public int nextInt(int n ): 返回的是[0,n)范围内的随机数
(4)代码示例:
- package cn.itcast_01;
- import java.util.Random;
- /*
- * Random:产生随机数的类
- *
- * 构造方法:
- * public Random():没有给种子,用的是默认种子,是当前时间的毫秒值
- * public Random(long seed):给出指定的种子
- *
- * 给定种子后,每次得到的随机数是相同的。
- *
- * 成员方法:
- * public int nextInt():返回的是int范围内的随机数
- * public int nextInt(int n):返回的是[0,n)范围的内随机数
- */
- public class RandomDemo {
- public static void main(String[] args) {
- // 创建对象
- // Random r = new Random();
- Random r = new Random(1111);// 给定种子,每次返回的随机数是一样的
- for (int x = 0; x < 10; x++) {
- // int num = r.nextInt();
- int num = r.nextInt(100) + 1;
- System.out.println(num);
- }
- }
- }
程序演示效果,如下:
随机数范围是[1,100]([0,100)+1 ---> [1,100])
2. 利用Random实现获取任意范围的随机数案例(面试题)
代码如下:
- package com.himi.random;
- import java.util.Random;
- import java.util.Scanner;
- /*
- *
- *
- * 获取任意范围内的随机数
- * 构造方法:
- * public Random():没有给种子,用的是默认种子,是当前时间的毫秒值
- * public Random(long seed):给出指定的种子
- * 给定种子后,每次得到的随机数是相同的。
- *
- * 成员方法:
- * public int nextInt():返回的是int范围内的随机数
- * public int nextInt(int n):返回的是[0,n)范围的内随机数
- */
- public class RandomDemo2 {
- public static void main(String[] args) {
- Scanner input = new Scanner(System.in);
- System.out.println("请输入开始数:");
- int start = input.nextInt();
- System.out.println("请输入结束数:");
- int end = input.nextInt();
- System.out.print("[");
- for(int i=0; i<20; i++) {
- if(i==19) {
- System.out.print(getRandom(start,end)+"]");
- break;
- }
- System.out.print(getRandom(start,end)+",");
- }
- }
- /**
- * 返回[start,end]区间中的随机整数
- * @param start
- * @param end
- * @return
- */
- private static int getRandom(int start, int end) {
- /**
- *[0,end-start+1)---->[start,end+1) == [start,end]
- */
- return new Random().nextInt(end-start+1)+start;
- }
- }
程序运行结果如下:
Java基础知识强化82:Random类概述和方法使用的更多相关文章
- Java基础知识强化105:打印数组的方法总结
1. 使用for循环打印数组. 2. 使用Arrays工具类,将数组转化为有序的List打印出来. 3. 使用Arrays工具类,使用Arrays.toString()输出数组内容. 上面三种方法打印 ...
- Java基础知识强化之集合框架笔记76:ConcurrentHashMap之 ConcurrentHashMap简介
1. ConcurrentHashMap简介: ConcurrentHashMap是一个线程安全的Hash Table,它的主要功能是提供了一组和Hashtable功能相同但是线程安全的方法.Conc ...
- Java基础知识强化之集合框架笔记68:Collections类概述和成员方法(备注:Collection 和 Collections区别)
1. Collections类概述: 针对集合操作的工具类,都是静态方法. 2. Collection 和 Collections的区别: Collections是个java.util下的类,它包含 ...
- Java基础知识强化94:Calendar类之Calendar概述和获取日历字段的方法
1. Calendar类概述: Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR.MONTH.DAY_OF_MONTH.HOUR 等 日历字段之间的转换提供了一些方法,并 ...
- Java基础知识强化89:Date类之Data类概述及其方法
1. Date类概述 类Date表示特定的瞬间,精确到毫秒 2. 构造方法 public Date():根据当前默认毫秒值创建日期对象 public Date(long date):根据给定的毫秒值创 ...
- Java基础知识强化88:BigDecimal类之BigDecimal类引入和概述 以及 BigDecimal的使用(加减乘除)
1. BigDecimal类概述: 由于在运算的时候,float类型和double很容易丢失精度.所以为了能够精确的表达.计算浮点数,Java提供了BigDecimal. BigDecimal:不可变 ...
- Java基础知识强化86:BigInteger类之BigInteger概述和构造方法
1. BigInteger类概述 可以让超过Integer范围内的数据进行运算 2. 构造方法: public BigInteger(String val) 3. 代码示例: package cn ...
- Java基础知识强化36:StringBuffer类之StringBuffer的概述
1. StringBuffer类概述: (1)String的缺陷: 我们如果对字符串进行拼接操作,每次拼接,都会构造一个新的String对象,既耗时,又浪费空间.如下图: (2)StringBuffe ...
- Java基础知识强化91:DateFormat类之DateFormat实现日期和字符串的相互转换
1. DateFormat类概述: DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间. 是抽象类,所以使用其子类SimpleDateFormat 2. ...
随机推荐
- 合(析)取范式转主合(析)取范式--》Java实现
这次老师布置了如下上机作业,不限语言.思前想后,问了几个大神,说了一堆不知道什么鬼的算法名称.... 经过一番百度,发现Java可以包含库然后使用JavaScript的一些函数,其中eval() 函数 ...
- TCP连接的状态分析
1.先来了解一下TCP连接建立与关闭过程中的各种状态: CLOSED:初始状态,表示没有任何连接.LISTEN:Server端的某个Socket正在监听来自远方的TCP端口的连接请求.SYN_SENT ...
- ES5严格模式
http://www.cnblogs.com/snandy/p/3428171.html 介绍了由ECMA262规范定义的Javascript标准,旨在改善错误检查功能并且标识不会延续到未来js版本的 ...
- underscorejs-findWhere学习
2.8 findWhere 2.8.1 语法: _.findWhere(list, predicate) 2.8.2 说明: 对list集合的每个对象依次与predicate对象进行匹配,匹配成功则立 ...
- ajax+XMLHttpRequest里的FormData实现图片异步上传
发这篇博客的时候我是自己在研究这个XMLHttpRequest请求,在别人的博客上面知道XMLHttpRequest新加了一个FormData的东西,好像现在APP请求后台也有用这种方式的吧. 别的不 ...
- Delphi-Delete 过程
过程名称 Delete 所在单元 System 过程原型 procedure Delete ( var Source : string; StartChar : Integer; Count : In ...
- MLlib-分类与回归
MLlib支持二分类,多酚类和回归分析的多种方法,具体如下: 问题类别 支持方法 二分类 线性支持向量机, 逻辑回归,决策树,朴素贝叶斯 多分类 决策树,朴素贝叶斯 回归 线性最小二乘,Lasso,r ...
- BZOJ 1688: Disease Manangement (子集枚举)
Disease Manangement Q - 枚举子集 Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d &a ...
- ASP.NET MVC的Action Filter
一年前写了一篇短文ASP.NET MVC Action Filters,整理了Action Filter方面的资源,本篇文章详细的描述Action Filter.Action Filter作为一个可以 ...
- HTML 表格、区块、其他常用控件
1. HTML 表格 主要关键字: table:表格: table border 属性:定义边框 -- <table border="1">: caption:表名: ...