- 产生随机整数
package com.random;
import java.util.Random;
/**
* 随机数
*/
public class RandomText01 {
public static void main(String[] args) {
//新建一个Random对象
Random random = new Random();
//调用nextInt() 方法,产生一个随机数,范围为int所能表示的范围
int i = random.nextInt();
System.out.println(i);
//random.nextInt(bound); 表示产生[0,10)的随机数
int i1 = random.nextInt(10);
System.out.println(i1);
}
}
- 方法一
- 产生count个互不相同的随机数,并要求控制随机数的范围
package com.random;
import java.util.Random;
public class RandomText02 {
public static void main(String[] args) {
int[] ints = RandomText02.randomDataArray(5, 5);
int i=1;
for (int anInt : ints) {
System.out.println("随机数"+i+"为:"+anInt);
i++;
}
}
/**
* 生成不重复的的随机数
*
* @param count 随机数的个数
* @param randomSize 随机数的范围0-random;
* @return 返回随机数数组
*/
public static int[] randomDataArray(int count, int randomSize) {
if(count>randomSize){
System.out.println("随机数的个数不能大于随机数的范围!!!");
return null;
}
//new一个产生随机数d对象
Random random = new Random();
//新建一个数组保存随机数
int[] arr = new int[count];
//数组赋初始值为-1;
for (int i = 0; i < arr.length; i++) {
arr[i] = -1;
}
int i = 0;
while (true) {
//产生随机数
int num = random.nextInt(randomSize);
//第一个随机数不可能有重复的,直接给到数组中
if (i==0) {
arr[i]=num;
i++;
}
//让产生的num随机数和数组中的元素依次挨个比较,如果有重复的,重新生成num,直到num和数组元素中
//的值都不相同时才让num传入arr数组中
for (int j = 0; j < i; j++) {
if (arr[j]==num){
break;
}
if(j==i-1&&arr[j]!=num){
arr[i]=num;
i++;
}
}
//当数组中的元素个数为count时,结束循环
if(i==count){
break;
}
}
//返回arr数组
return arr;
}
}
- 方法二
产生五个互不相同的随机数随机数
package com.random;
import java.util.Arrays;
import java.util.Random;
/**
* 产生五个互不相同的随机数随机数
*/
public class RandomText03 {
public static void main(String[] args) {
Random random = new Random();
int[] arr=new int[10];
for (int i = 0; i <arr.length ; i++) {
arr[i] = -1;
}
int index=0;
while (index<arr.length){
//产生随机数
int num = random.nextInt(11);
//如果数组中不包含num 就把num放在数组中
boolean contiants = RandomText03.contiants(arr, num);
if(contiants==false){
arr[index]=num;
index++;
}
}
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
/**
* 判断数组arr中是否包含key
* @param arr 数组
* @param key 元素
* @return true包含,false不包含
*/
public static boolean contiants(int[] arr,int key){
for (int i = 0; i < arr.length; i++) {
if(arr[i]==key){
return true;
}
}
return false;
}
}