Random类
1.大家都是知道的在java里工具类中本来就有一个可以随机产生一个随机数的类 Random类。
但是众所周知的,这个类所产生一个随机数是不排除不重复的部分,那么今天我们就来实现一个随机产生一个不重复的整数。
2.数组的下标是不能重复的,当我们想要随机的取数组中的元素的时候,数组的元素不重复,也就是我们可以随机的去取数组中元素的下标。java提供的这个工具可能就不那么实用了。
3.那么就来实现这个方法:
package cn.ygr.java1606Random_10_19;
import java.util.Random;
/**
* 生成一个不重复的随机数
* @author ygr
*
*/
public class RandomUtil {
public static Random random = new Random();
public static int[] getRandomIndex(int number) {
int[] indexs = new int[number];
int n = 0;
while (n < number) {
indexs[n] = random.nextInt(number);
/*
* 排除重复生成随机数
*/
if (n >= 1) {
int i = 0;
while (i < n) {
if (indexs[i] == indexs[n]) {
break;
} else {
i++;
}
}
if (i == n) {
n++;
}
} else {
n++;
}
}
return indexs;
}
}
下面是测试类
package cn.ygr.java1606Random_10_19;
/**
*
* @author ygr
*
*/
public class RandomTest {
public static void main(String[] args) {
//String[] names = {"张三","李四","王二","麻子","小明","小红","丽丽","小花","小黑","旺财"};
String[] names =new String[20];//定义一个20个人的数组 ,随机的去访问他们的数组下标0-19
int[] randoms = RandomUtil.getRandomIndex(20);//调用方法,传入需要产生的随机数的个数即可
for(int i : randoms){
System.out.println("生成一个随机下标为:"+i);
}
}
}
运行结果如图: