实用的随机数生成类Random:测试(随机产生100个不重复的正整数)
实用的随机数生成类Random:测试(使用Random类随机生成100个不重复的正整数)
一、之前我们使用随机数用的是Math类的random()方法:
tips:
产生随机数(0~9中任意整数)的方法:int random = (int)(Math.random()*10);
1.商场幸运抽奖程序。
会员号的百位数字等于产生的随机数即为幸运会员。
public class GoodLuck{
public static void main(String[] args){
//产生随机数
int random = (int)(Math.random()*10);
//从控制台接收一个4位会员号
System.out.println("我行我素购物管理系统>幸运抽奖\n");
System.out.print("请输入4位会员号:");
Scanner input = new Scanner(System.in);
int custNo = input.nextInt();
//分解获得百位
int baiwei = custNo/100%10;
//判断是否是会员
if(baiwei = random){
System.out.println(custNo+"是幸运客户,获精美MP3一个。");
}else{
System.out.println(custNo+"谢谢您的支持!");
}
}
}
二、其实,Math类的random方法的底层就是使用Random类实现的。
1.给构造方法有两种重载方法:
Random();
创建一个新的随机数生成器。
Random(long seed);
使用单个long种子创建一个新的随机数生成器。
tips:
如果用同样一个种子值来初始化两个Random对象,然后用每个对象调用相同的方法,那么得到的随机数也是相同的(令牌)
2.返回下一个伪随机数的方法:
int nextInt();
返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的int值。
int nextInt(int n);
返回下一个伪随机数,它是取自此随机数生成器序列的,在0(包括)和指定值(不包括)之间均匀分布的int值。
三、Random类的使用
1.随机生成20个10以内大于或等于0的整数,并将其显示出来:
import java.util.Random;
public class RandomDemo{
public static void main(String[] args){
//创建一个Random对象
Random rand = new Random();
//随机生成20个随机整数,并显示
for(){
int num = rand.nextInt(10);
System.out.println("第"+(i+1)+"个随机数是:"+num);
}
}
}
2.案例:随机产生100个不重复的整数
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Random;
import java.util.Set; /**
* 随机生成100个不重复的随机数
* @author Administrator
*
*/
public class RandomDemo { public static void main(String[] args) throws ParseException {
Random rand = new Random();
System.out.println("Set方法:");
//Set集合保存
Set<Integer> nums = new HashSet<Integer>();
//循环保存
do{
nums.add(rand.nextInt(100));
}while(nums.size()<100);
for (Integer num : nums) {
System.out.println(num);
}
System.out.println("List方法:");
//List集合保存
List<Integer> list = new ArrayList<Integer>();
int num;
do{
num = rand.nextInt(100);
for (Integer item : list) {
if (num==item) {
continue;
}
}
list.add(num);
}while(list.size()<100);
for (Integer item : list) {
System.out.println(item);
}
/*Date类的使用*/
//日期格式
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 24小时HH:mm:ss 12小时hh:mm:ss");
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
System.out.println("当前时间:"+sdf.format(date));
String str = "2016-12-31";
Calendar calendar = Calendar.getInstance();
date = sdf1.parse(str);
calendar.setTime(date);
System.out.println(calendar.get(Calendar.YEAR));
} }
实用的随机数生成类Random:测试(随机产生100个不重复的正整数)的更多相关文章
- 随机数生成类Random用法
一.构造方法: Random() 创建一个新的随机数生成器. Random(long seed) 使用单个 long 种子创建一个新的随机数生成器. 无参构造方 ...
- 类 Random
什么是Random类 此类的实例用于生成伪随机数 Random使用步骤 查看类 java.util.Random :该类需要 import导入使后使用. 查看构造方法 public Random() ...
- 随机数类Random
我们来学习下,用来产生随机数的类Random,它也属于引用数据类型. 这个Random类,它可以产生多种数据类型的随机数,在这里我们主要介绍生成整数与小数的方式. l 方法简介 public int ...
- 随机数类 Random
import java.util.Random; /* 随机数类 Random 需求: 编写一个函数随机产生四位的验证码. */ public class Demo5 { public static ...
- Java基础-继承-编写一个Java应用程序,设计一个汽车类Vehicle,包含的属性有车轮个数 wheels和车重weight。小车类Car是Vehicle的子类,其中包含的属性有载人数 loader。卡车类Truck是Car类的子类,其中包含的属性有载重量payload。每个 类都有构造方法和输出相关数据的方法。最后,写一个测试类来测试这些类的功 能。
#29.编写一个Java应用程序,设计一个汽车类Vehicle,包含的属性有车轮个数 wheels和车重weight.小车类Car是Vehicle的子类,其中包含的属性有载人数 loader.卡车类T ...
- 实现如下类之间的继承关系,并编写Music类来测试这些类。
实现如下类之间的继承关系,并编写Music类来测试这些类. package com.hanqi.test; public class Instrument { //输出弹奏乐器 public void ...
- IO流,File类的测试........课堂加总结
package liu0926; import java.io.File; import java.io.IOException; public class Text01 { public stati ...
- 简单练习题2编写Java应用程序。首先定义一个描述银行账户的Account类,包括成员变 量“账号”和“存款余额”,成员方法有“存款”、“取款”和“余额查询”。其次, 编写一个主类,在主类中测试Account类的功能
编写Java应用程序.首先定义一个描述银行账户的Account类,包括成员变 量“账号”和“存款余额”,成员方法有“存款”.“取款”和“余额查询”.其次, 编写一个主类,在主类中测试Account类的 ...
- mongoDB工具类以及测试类【java】
java操作mongo工具类 package Utils; import com.mongodb.MongoClient; import com.mongodb.MongoCredential; im ...
随机推荐
- Navicat 远程连接 MySQL
Navicat 远程连接 MySQL 相信大家都有在远程服务器上进行开发吧,其中 MySQL 的使用率应该也会挺高,如果使用 Navicat 等可视化工具来操作远程数据库不失为一种很好的选择,避免了在 ...
- Tomcat类加载机制触发的Too many open files问题分析(转)
https://blog.csdn.net/ctrip_tech/article/details/53337137 说起Too many open files这个报错,想必大家一定不陌生.在Linux ...
- 连接池、数据源、JNDI三者间的关系及用法
连接池:连接池是由容器(比如Tomcat)提供的,用来管理池中的连接对象.连接池自动分配连接对象并对闲置的连接进行回收.连接池中的连接对象是由数据源(DataSource)创建的.连接池(Connec ...
- Python3之XML模块
一.简介 xml是实现不同语言或程序之间进行数据交换的协议,可扩展标记语言,标准通用标记语言的子集.是一种用于标记电子文件使其具有结构性的标记语言.xml格式如下,是通过<>节点来区别数据 ...
- javascript阻止事件冒泡的方法
有的时候我们需要实现这样的功能: 点击某个蒙版,该蒙版消失,但是如果点击蒙版上的某个元素,希望蒙版不消失,这就需要用到阻止事件的冒泡了 html: <div id="outer&quo ...
- 2019你还不学Python?
废话不多说,先上张图,展示一下 Python 不可置信的增长情况. 根据Stack Overflow 的调查显示,在全球范围内,Python 开发人员可以拿到 56,000 美元的年薪.而 Indee ...
- Haproxy配置之URL重写,支持websocket
配置文件位置:/etc/haproxy/haproxy.cfg Reqrep 正则重写 配置详情: Frontend App *: acl uri_api path_beg /api/ acl uri ...
- 如何在JAVA中每隔一段时间执行一段程序
可以用线程来做,每隔几秒开一个线程代码如下 public void runTask() { final long timeInterval = 120000;// 两分钟运行一次 final Thre ...
- liunx php 安装 redis 扩展
切换到安装目录: cd /usr/local/ 下载php redis扩展:wget http://pecl.php.net/get/redis-2.2.8.tgz 更改名称压缩包名称: mv re ...
- mysql id_logfile 日志
ib_logfile 文件原理 ib_logfile0 是innodb中事务日志,记录系统的回滚,重做日志,记录的是文件的物理更改,存放位置my.ini 中的 datadir="D:\php ...