黑马程序员技术交流社区
标题:
不使用集合生成5个不重复的随机数
[打印本页]
作者:
leiyingyin
时间:
2015-8-12 23:25
标题:
不使用集合生成5个不重复的随机数
本帖最后由 leiyingyin 于 2015-8-12 23:25 编辑
import java.util.Random;
class RandomNumber
{
public static void main (String[] args)
{
int[] arr = new int[5];
//声明的第一个数不存在重复的问题,所以不管3721先添加到数组里
Random random = new Random();
arr[0] = random.nextInt(5);
//从第二个数开始
int arrIndex = 1;
while(arrIndex != 5){
int rand = random.nextInt(5);
//设置标志值,遍历数组检查是否有重复的数
//有重复则hasSame为true,没有重复则保留着默认值false,
//这样遍历之后检查hasSame的值就可以知道有没有重复的数了
boolean hasSame = false;
for(int i=0;i<arrIndex;i++){
if(rand == arr[i]){
hasSame = true;
}
}
//报告!捕获到一枚不重复的随机数,上交给国家(加入到数组中,并且数组下标+1)
if(!hasSame){
arr[arrIndex ] = rand;
arrIndex ++;
}
//否则arrIndex不动,继续生成随机数来填这个坑
}
//输出数组检查是否正确
for(int i = 0;i<arr.length;i++){
System.out.print(arr[i]+" ");
}
}
}
复制代码
输出结果:
2 1 4 3 0
欢迎大家来吐槽我的代码~~~
作者:
ooyeah
时间:
2015-8-12 23:57
{:2_31:}大神求带~~~
作者:
rxtm
时间:
2015-8-13 00:00
直接用set不更简单
作者:
leiyingyin
时间:
2015-8-13 00:04
rxtm 发表于 2015-8-13 00:00
直接用set不更简单
有要求规定不能用集合....
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2