JAVA里取10个1-100随即数并且不重复怎么写代码?

谢谢了!~

import java.util.HashSet;
import java.util.Iterator;
import java.util.Random;
import java.util.Set;

public class RandomTest {
public static void main(String[] args){
Random random = new Random();
Set numberSet = new HashSet();
while(numberSet.size()<10){
int rand = Math.abs(random.nextInt(100));
numberSet.add(new Integer(rand)); //Set中是不能放进重复的值的,当它有10个时,就满足你的条件了
}
for(Iterator it=numberSet.iterator();it.hasNext();){
System.out.println(it.next());
}
}

}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-11-30
public static void main(String[] args) {
// TODO Auto-generated method stub
int array[] = new int[10];
int i = 1;
array[0] = (int)(Math.random()*100) + 1;
while(i < 10){
int count = 0;
int now = i;
array[i] = (int)(Math.random()*100 + 1);
for(int j = 0; j < now; j++){
if(array[i] != array[j])
count++;
if(count == i) i++;
}
}
for(int j = 0; j < 10; j++)
System.out.println(array[j]);
}本回答被提问者采纳
第2个回答  2008-11-30
int []a=new int[10];定义数组长度为10
int b=0;
int number=0;
while (number<10){
b=(int)(Math.random()*99+1);//产生随机数为1到100之间的数强制取整
//进行判断所产生的数是否重复,若已经有了则重新产生。
if (b!=a[0]&&b!=a[1]&&b!=a[2]&&b!=a[3]&&b!=a[4]&&b!=a[5]]&&b!=a[6]&&b!=a[7]&&b!=a[8]&&b!=a[9]){
a[number]=b;
number++;
}
}
数组a存放了10个不重复的1到100之间的随机数。
第3个回答  2008-11-30
import java.util.*;

public class sjshu
{
private int[] a;
private int b,i=0,j=0;
public sjshu()//取10个随即数存入数组a[i]并打印输出
{
Random random=new Random();
a=new int[10];
while(i<10)
{
if(i==0)
a[i]=1+random.nextInt(99);
else
a[i]=judge(i,a);
i++;
}
for(j=0;j<i;j++)
System.out.print(a[j]+"\t");
}
int judge(int i,int a[])//判断取的随即数有无与数组已存元素重复
{
Random random=new Random();
j=0;
b=1+random.nextInt(99);
while(b!=a[j]&&j<i)
{
j++;
}
if(b==a[j]) judge(i,a);
return (b);
}
public static void main(String[] args)
{
sjshu mysjshu=new sjshu();
}
}
第4个回答  2008-11-30
可以设置一个数组,每取道一个就放到数组当中,放之前先索引一下数组中是不是已经有这个数了,如果有就再生成以下随机数,没有直接写入数组

恩,思路就是这样的,实现起来你肯定没问题啦
相似回答