java Random.nextInt()方法的具体使用

lic int nextInt(int n)

该方法的作用是生成一个随机的int值,该值介于[0,n)的区间,也就是0到n之间的随机int值,包含0而不包含n。

直接上代码:

package org.xiaowu.random.demo;

import java.util.Random;

import org.junit.Test;

public class RandomDemo {

 @Test
 public void Demo(){
  Random rnd = new Random();
  int code = rnd.nextInt(8999) + 1000;
  System.out.println("code:"+code);
 }

 @Test
 public void Demo1(){
  Random r = new Random();
  int nextInt = r.nextInt();
  Random r1 = new Random(10);
  int nextInt2 = r1.nextInt();
  System.out.println("nextInt:"+nextInt);
  System.out.println("nextInt2:"+nextInt2);
 }

 /**
  * 生成[0,1.0)区间的小数
  *
  */
 @Test
 public void Demo2(){
  Random r = new Random();
  double d1 = r.nextDouble();
  System.out.println("d1:"+d1);
 }

 /**
  * 生成[0,5.0)区间的小数
  *
  */
 @Test
 public void Demo3(){
  Random r = new Random();
  double d2 = r.nextDouble()* 5;
  System.out.println("d1:"+d2);
 }

 /**
  * 生成[1,2.5)区间的小数
  *
  */
 @Test
 public void Demo4(){
  Random r = new Random();
  double d3 = r.nextDouble() * 1.5 + 1;
  System.out.println("d1:"+d3);
 }

 /**
  * 生成任意整数
  *
  */
 @Test
 public void Demo5(){
  Random r = new Random();
  int n1 = r.nextInt();
  System.out.println("d1:"+n1);
 }

 /**
  * 生成[0,10)区间的整数
  *
  */
 @Test
 public void Demo6(){
  Random r = new Random();
  int n2 = r.nextInt(10);
  int n3 = Math.abs(r.nextInt() % 10);
  System.out.println("n2:"+n2);
  System.out.println("n3:"+n3);
 }

 /**
  * 生成[0,10]区间的整数
  *
  */
 @Test
 public void Demo7(){
  Random r = new Random();
  int n3 = r.nextInt(11);
  int n4 = Math.abs(r.nextInt() % 11);
  System.out.println("n3:"+n3);
  System.out.println("n4:"+n4);
 }

 /**
  * 生成[-3,15)区间的整数
  *
  */
 @Test
 public void Demo8(){
  Random r = new Random();
  int n4 = r.nextInt(18) - 3;
  int n5 = Math.abs(r.nextInt() % 18) - 3;
  System.out.println("n4:"+n4);
  System.out.println("n5:"+n5);
 }

}

Java中使用Random类中的nextInt()方法返回一个伪随机数

问题

今天想让程序返回一个区间内的随机数。忘记怎么写了,就去百度搜给出的结果并不对。

import java.util.Random;

/**
 * @author HP
 * @date 2019/4/16
 */
public class randomTest {
 public static void main(String[] args) {

  Random random = new Random();
  //生成64-128内的随机数
  int i = random.nextInt() * (128 - 64 + 1) + 64;
  /**
   * 生成 [m,n] 的数字
   * int i1 = random.nextInt() * (n-m+1)+m;
   * */
  //生成0-64内的数字
  int i1 = random.nextInt() * (64-0+1);
  /**
   * 生成0-n之内的数字
   * int i1 = random.nextInt() * (n-0+1);
   *
   *
   * */

 }
}

这样是不对的,我就去查看API文档,发现nextInt()可以有参数也可以无参数。

无参数的方法直接调用返回的是一个很大的正负区间上的数。

如果想返回想要的范围内的数,应该:

package chapter6;

import java.util.Random;

import org.omg.Messaging.SyncScopeHelper;

public class RandomTest {
  public static void main(String[] args) {
  Random random = new Random();
  for(int i=0;i<200;i++)
  {
//  输出为0~13之间的整数
  System.out.println(random.nextInt(14));
  }
  System.out.println("----------------------------");
  for(int j=0;j<100;j++){
//  输出为-9~0之间的整数
  System.out.println(random.nextInt(10)-9);
  }
  }
}

到此这篇关于java Random.nextInt()方法的具体使用的文章就介绍到这了,更多相关java Random.nextInt使用内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 实例讲解Java中random.nextInt()与Math.random()的基础用法

    1.来源 random.nextInt() 为 java.util.Random类中的方法: Math.random() 为 java.lang.Math 类中的静态方法. 2.用法 产生0-n的伪随机数(伪随机数参看最后注解): // 两种生成对象方式:带种子和不带种子(两种方式的区别见注解) Random random = new Random(); Integer res = random.nextInt(n); Integer res = (int)(Math.random() * n)

  • java Random.nextInt()方法的具体使用

    lic int nextInt(int n) 该方法的作用是生成一个随机的int值,该值介于[0,n)的区间,也就是0到n之间的随机int值,包含0而不包含n. 直接上代码: package org.xiaowu.random.demo; import java.util.Random; import org.junit.Test; public class RandomDemo { @Test public void Demo(){ Random rnd = new Random(); int

  • Java Random.nextInt()方法原理解析

    lic int nextInt(int n) 该方法的作用是生成一个随机的int值,该值介于[0,n)的区间,也就是0到n之间的随机int值,包含0而不包含n. 关于Random r = new Random(47)中47的意思 今天看Java编程思想的时候看到了一段这样的代码: Random r = new Random(47); int a = r.nextInt(26); System.out.println(a); 刚开始没注意那个47,以为是随机一个47以内的数,但是看到后面在next

  • java random.nextInt的坑及解决

    目录 java random.nextInt的坑 很简单的两句代码,需要注意两点 java random.nextInt()不随机性 这个题在网上已经有很多人给出了答案 我的算法是 验证如下 java random.nextInt的坑 下面的代码 Random random = new Random(); Integer code = random.nextInt(len); 很简单的两句代码,需要注意两点 第一:nextInt的取值是[0,n) ,不包括n.如果是随机list,直接传list的

  • 详解Java多线程tryLock()方法使用

    tryLock(long time, TimeUnit unit) 的作用在给定等待时长内锁没有被另外的线程持有,并且当前线程也没有被中断,则获得该锁,通过该方法可以实现锁对象的限时等待. package com.wkcto.lock.reentrant; import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.ReentrantLock; /** *tryLock(long time, TimeUnit u

  • 分析讲解Java Random类里的种子问题

    可以说在现在的计算机语言里面,以及普通用户这里,都是没有办法获得真正的 随机数的.真正的随机数现在也只有在量子计算机当中才有获得. 所以我们现在所说的随机数,也可以称为伪随机数,伪随机数是通过一种算法并且结合当下一个有规律其不断改变的数(比如时间)获得的结果. 我们将这种通过算法集合时间作为初始获得随机数的基准的数据称为种子. Java当中创建随机数的方式是有两种的: 第以种就是直接创建Random对象 Random random = new Random(); 在底层就会调用这个方法来得到种子

  • Java遍历集合方法分析(实现原理、算法性能、适用场合)

    概述 Java语言中,提供了一套数据集合框架,其中定义了一些诸如List.Set等抽象数据类型,每个抽象数据类型的各个具体实现,底层又采用了不同的实现方式,比如ArrayList和LinkedList. 除此之外,Java对于数据集合的遍历,也提供了几种不同的方式.开发人员必须要清楚的明白每一种遍历方式的特点.适用场合.以及在不同底层实现上的表现.下面就详细分析一下这一块内容. 数据元素是怎样在内存中存放的? 数据元素在内存中,主要有2种存储方式: 1.顺序存储,Random Access(Di

  • Java map.getOrDefault()方法的用法详解

    Map.getOrDefault(Object key, V defaultValue)方法的作用是: 当Map集合中有这个key时,就使用这个key值: 如果没有就使用默认值defaultValue. 代码示例如下: HashMap<String, String> map = new HashMap<>(); map.put("name", "cookie"); map.put("age", "18"

  • Java两种方法计算出阶乘尾部连续0的个数

    第一个方法是计算出阶乘然后计算字符串的0的个数. import java.util.Scanner; import java.math.BigDecimal; import java.text.DecimalFormat; public class jc{ public static void main(String args[]){ Scanner reader = new Scanner(System.in); DecimalFormat a = new DecimalFormat("#&q

  • java基础之方法和方法的重载详解

    一.带参方法 1.1 带参方法的定义和调用 之前定义的方法大部分都是无参方法,但是有些方法的执行是需要前提条件的,那么参数就是将这些前提条件传送过来 定义带参数的方法: <访问修饰符> 返回值类型 <方法名称> (<形式参数列表>){ //方法的主体 } 调用带参数的方法 对象名.方法名(参数1,参数2,参数3-参数n); 定义榨汁机的类,输出详细信息 package Kind.dh; //定义榨汁机类 public class MethodWithParameters

随机推荐