实用的随机数生成类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个不重复的正整数)的更多相关文章

  1. 随机数生成类Random用法

    一.构造方法: Random()           创建一个新的随机数生成器. Random(long seed)           使用单个 long 种子创建一个新的随机数生成器. 无参构造方 ...

  2. 类 Random

    什么是Random类 此类的实例用于生成伪随机数 Random使用步骤 查看类 java.util.Random :该类需要 import导入使后使用. 查看构造方法 public Random() ...

  3. 随机数类Random

    我们来学习下,用来产生随机数的类Random,它也属于引用数据类型. 这个Random类,它可以产生多种数据类型的随机数,在这里我们主要介绍生成整数与小数的方式. l  方法简介 public int ...

  4. 随机数类 Random

    import java.util.Random; /* 随机数类 Random 需求: 编写一个函数随机产生四位的验证码. */ public class Demo5 { public static ...

  5. Java基础-继承-编写一个Java应用程序,设计一个汽车类Vehicle,包含的属性有车轮个数 wheels和车重weight。小车类Car是Vehicle的子类,其中包含的属性有载人数 loader。卡车类Truck是Car类的子类,其中包含的属性有载重量payload。每个 类都有构造方法和输出相关数据的方法。最后,写一个测试类来测试这些类的功 能。

    #29.编写一个Java应用程序,设计一个汽车类Vehicle,包含的属性有车轮个数 wheels和车重weight.小车类Car是Vehicle的子类,其中包含的属性有载人数 loader.卡车类T ...

  6. 实现如下类之间的继承关系,并编写Music类来测试这些类。

    实现如下类之间的继承关系,并编写Music类来测试这些类. package com.hanqi.test; public class Instrument { //输出弹奏乐器 public void ...

  7. IO流,File类的测试........课堂加总结

    package liu0926; import java.io.File; import java.io.IOException; public class Text01 { public stati ...

  8. 简单练习题2编写Java应用程序。首先定义一个描述银行账户的Account类,包括成员变 量“账号”和“存款余额”,成员方法有“存款”、“取款”和“余额查询”。其次, 编写一个主类,在主类中测试Account类的功能

    编写Java应用程序.首先定义一个描述银行账户的Account类,包括成员变 量“账号”和“存款余额”,成员方法有“存款”.“取款”和“余额查询”.其次, 编写一个主类,在主类中测试Account类的 ...

  9. mongoDB工具类以及测试类【java】

    java操作mongo工具类 package Utils; import com.mongodb.MongoClient; import com.mongodb.MongoCredential; im ...

随机推荐

  1. javascript常用函数(find、filter、map)

    1.find 查询数组中符合条件的第一个元素,如果没有符合条件的元素则返回空数组var arr = [1,2,3,4,5,6,7];var dogs=arr.find(v=>v===4);结果: ...

  2. shell-脚本-作用是发现前10个最占用磁盘空间的文件

    #!/bin/bash## 这个脚本的作用是发现前10个最占用磁盘空间的文件################定义这个脚本的全区变量##################################C ...

  3. requests模块处理cookie,代理ip,基于线程池数据爬取

    引入 有些时候,我们在使用爬虫程序去爬取一些用户相关信息的数据(爬取张三“人人网”个人主页数据)时,如果使用之前requests模块常规操作时,往往达不到我们想要的目的. 一.基于requests模块 ...

  4. dsp之BF531笔记

    获得更多资料欢迎进入我的网站或者 csdn或者博客园 很久以前的BF531的笔记,觉得有用分享出来.摘自于open dsp 通用Gpio ADSP-BF53x 处理器上有16 个PF 接口,这些接口就 ...

  5. ARKit的使用

    //创建场景 let scene = SCNScene() /* //1.几何 let box = SCNBox.init(width: 0.1, height: 0.1, length: 0.1, ...

  6. java 关于数组 计数的面试题

    题目:用面向对象的方法求出数组中重复 value 的个数 :  1  出现:1 次3 出现:2 次8 出现:3 次2 出现:4 提供数组 :  int[] arr = {1,4,1,4,2,5,4,5 ...

  7. tornado 01 路由、输入与输出

    tornado 01 路由.输入与输出 一.安装tornado pyvip@Vip:~$ workon py3env #安装python3的虚拟环境 (py3env) pyvip@Vip:~$ pip ...

  8. Vuex 使用了 module 后的访问方法 ..

    如果 使用了  module 和 namespace state 数据:=>   this.$store.state.User.info  (user 是模块名字. info 是 state 里 ...

  9. C++_函数4-函数重载与函数模板

    函数重载 多个函数,函数名相同,但是调用的时候,参数不同. 函数多态是C++在C语言的基础上新增的功能.多态指的是有多种形式,因此函数多态允许函数可以有多种形式.术语“函数重载”指的是可以有多个同名的 ...

  10. CentOS7 下使用 Nginx

    update: 2019-03-25 --新增新装 Nginx 的启动.重启.关闭和查看 2019-02-19 --新增 yum 方式快速简单安装 Nginx 2018-09-29 --新增配置文件对 ...