java 怎样取100以内5个不同的随机数,注意是不同的随机数哦,谁能用最少的代码帮我一下

如题所述

2种写法:
1、分5个不同区间,每个区间20个值,随机取每个区间的一个值
2、随机取0-100的5个数, 每取一个,就放到set中。直到set的size等于5就停止、
给你方法2的代码:
HashSet<Integer> hs = new HashSet<Integer>(); //hashset里面不允许有重复的值,如果有重复的值,是插不进去的(不会覆盖)
Random r = new Random();
while(hs.size()<5)
{
hs.add(r.nextInt(100));
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-08-17
Set<Integer> set = new HashSet<Integer>();
for (int i = 0; i < 5;) {
if (set.add((int)(Math.random()*100+1)))
i++;
}
System.out.println(set);
第2个回答  2011-08-17
假设你要的精度是整数而已的话可以生成一个double然后取小数点后1~10位,每两位代表一个数(0~99)。这样比较快。
第3个回答  2011-08-17
/**
* 生成n个small-big的不重复随机数字
*
* @param n
* 随机数字个数
* @param n
* 随机数字个数
* @return 随机数字数组
*/
public static int[] generateDifNums(int n, int small, int big) {

int length = big - small + 1;
int[] seed = new int[length];
for (int i = 0; i < length; i++) {
seed[i] = small + i;
}
int[] ranArr = new int[n];
Random ran = new Random();
for (int i = 0; i < n; i++) {
int j = ran.nextInt(length - i);
ranArr[i] = seed[j];
seed[j] = seed[length - 1 - i];

}
return ranArr;
}

学java的可以加入我的团队“java大牛”追问

java大牛是什么团队?

追答

http://zhidao.baidu.com/team/search?kw=java%B4%F3%C5%A3
只是我建的一个互助学习java的百度知道团队,随便宣传下的呵呵

第4个回答  2011-08-17
用List或者数组保存
用do-while来取
相似回答