JAVA中获取不重复的随机数

我们知道 Random random = new  Random() 中可能会获取到重复的随机数

那么假设要获取1到33之间的六个不重复随机数应该怎么做呢?

首先定义一个数字数组存储1到33

int[ ]  redBall = new int[33[;

for(int i = 0;i<redBall.length;i++){

  redBall[i] = i+1;

}

int[ ]  redNumber = new int[6];     //存储六个随机数的实际数组

int index = -1;                             //通过随机数字数组下标获取随机数

for(int i = 0;i<redNumber.length;i++){

  index = random.nextInt(redBall.length-i);   //每次获取数字数组长度-i的随机数,比如第一次循环为33第二次为32,

  redNumber[i] = redBall[index];                   //把数字数组随机下标的值赋给实际数组

  int temp = redBall[index];                           //定义一个变量暂存下标为index时的值

  redBall[index] = redBall[redBall.length-1-i];  //把下标为index的值与数组下标最后的值交换

  redBall[redBall.length-1-i] = temp;             //交换后,下次循环把数字数组最后的值去掉,从而实现不重复

}

原文地址:https://www.cnblogs.com/Lii-midshei/p/10521379.html

时间: 2024-10-28 19:22:46

JAVA中获取不重复的随机数的相关文章

JAVA中获取项目文件路径

在java中获得文件的路径在我们做上传文件操作时是不可避免的. web 上运行 1:this.getClass().getClassLoader().getResource("/").getPath(); this.getClass().getClassLoader().getResource("").getPath();  得到的是 ClassPath的绝对URI路径.如:/D:/jboss-4.2.2.GA/server/default/deploy/hp.wa

java中获取系统属性以及环境变量

java中获取系统属性以及环境变量 System.getEnv()和System.getProperties()的差别 从概念上讲,系统属性 和环境变量 都是名称与值之间的映射.两种机制都能用来将用户定义的信息传递给 Java 进程.环境变量产生很多其它的全局效应,由于它们不仅对Java 子进程可见,并且对于定义它们的进程的全部子进程都是可见的.在不同的操作系统上,它们的语义有细微的区别,比方,不区分大写和小写.由于这些原因,环境变量更可能有意料不到的副作用.最好在可能的地方使用系统属性.环境变

JAVA中获取系统时间

一. 获取当前系统时间和日期并格式化输出: import java.util.Date;import java.text.SimpleDateFormat; public class NowString {public static void main(String[] args) { SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式System.out.println(df.forma

JAVA中获取当前系统时间及格式转换

JAVA中获取当前系统时间 一. 获取当前系统时间和日期并格式化输出: import java.util.Date;import java.text.SimpleDateFormat; public class NowString {public static void main(String[] args) { SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式System.out.pr

Java中获取键盘输入值的三种方法

Java中获取键盘输入值的三种方法     Java程序开发过程中,需要从键盘获取输入值是常有的事,但Java它偏偏就没有像c语言给我们提供的scanf(),C++给我们提供的cin()获取键盘输入值的现成函数!Java没有提供这样的函数也不代表遇到这种情况我们就束手无策,请你看以下三种解决方法吧: 以下将列出几种方法: 方法一:从控制台接收一个字符,然后将其打印出来 import java.io.*; public static void main(String [] args) throws

java中获取环境变量

分为获取java自身的一些环境变量和和操作系统相关的环境变量. 获取JVM相关的一些变量 在运行时设置一个环境变量 debug 为 true: java -Ddebug=true YourClass在程序中设置一个环境变量 debug 为 true: System.setProperty( "debug", "true" );获取一个环境变量 debug : String debug = System.getProperty( "debug" )

java中获取路径的几种方式

总是忘记, 备份一下,方便下次用. 第一种: File directory = new File("");//参数为空 String courseFile = directory.getCanonicalPath() ;System.out.println(courseFile); 结果:C:\Documents and Settings\Administrator\workspace\projectName获取当前类的所在工程路径; 第二种: File f = new File(th

java中获取日期和时间的方法总结

1.获取当前时间,和某个时间进行比较.此时主要拿long型的时间值. 方法如下:  要使用 java.util.Date .获取当前时间的代码如下 Date date = new Date(); date.getTime() ; 还有一种方式,使用 System.currentTimeMillis() ;都是得到一个当前的时间的long型的时间的毫秒值,这个值实际上是当前时间值与1970年一月一号零时零分零秒相差的毫秒数 一.获取当前时间,   格式为:   yyyy-mm-dd   hh-mm

JAVA中获取路径

内容来自于snannan_268 关键字: java中获取路径 JAVA中获取路径: 1.jsp中取得路径:   以工程名为TEST为例: (1)得到包含工程名的当前页面全路径:request.getRequestURI() 结果:/TEST/test.jsp (2)得到工程名:request.getContextPath() 结果:/TEST (3)得到当前页面所在目录下全名称:request.getServletPath() 结果:如果页面在jsp目录下 /TEST/jsp/test.jsp