java从1-100随机提取10个不重复值,怎么编程啊?

输出的这10个不重复值添加大列表list中,不要用set的编程方法

public class Test{
public static void main(String[] args) {
int[] num = new int[10];//存储10个生成的数据
int i=0;//计数器 指示当前要填加到的数组下标,并指示当前已经添加了几个数
boolean b;//判断是否重复的辅助变量
while(i<10){
//生成一个随机数
int j = (int)(Math.random()*100+1);
//将辅助变量设置为true 表示可以添加到数组
b = true;
//循环判断是否重复
for(int n=0;n<i;n++){
//如果重复,设置辅助变量为false且跳出循环
//如果不重复则会一直将已添加的数组历遍一次
if(num[n]==j){
b = false;
break;
}
}
//如果可以添加 添加到存储数组 并将计数器i自加1
if(b){
num[i]=j;
i++;
}
}
//将结果循环输出到控制台
for(int j=0;j<10;j++){
System.out.println(num[j]);
}
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-03-30
1-100得随机数字,要用rand.nextInt(100) + 1;才对
import java.util.ArrayList;
import java.util.List;
import java.util.Random;

public class Apl {
public static void main(String args[]) {

Random rand = new Random();

List<Integer> list = new ArrayList<Integer>();

int i = 1;

while (i <= 10) {
int num = rand.nextInt(100) + 1;

if (!list.contains(num)) {
list.add(num);
i++;
}
}

for(i = 0; i < list.size(); i++){
System.out.print(list.get(i).intValue() + " ");
}

}
}
-------------------
32 73 23 21 66 39 57 79 16 95
第2个回答  2011-03-30
public class TestRandom {
public static void main(String[] args) {
Set set = new HashSet();
int num = (int)(Math.random()*100);
set.add(num);
while(set.size()<10){
num = (int)(Math.random()*100);
set.add(num);
}
System.out.println(set);
}
}
第3个回答  2011-03-30
public class Random {
public static void main(String args[])
{
for (int i=0;i<10;i++)
System.out.println((int)(Math.random()*100));
}
}
用Math.random()这个函数.
Math.random()生成的数是大于0小于1的.
第4个回答  2011-03-30
在 sql 里面可以这样写:
假设 表 tab 里面有100条数据: select top 10 id from tab order by NEWID()
在程序里面 貌似只能随机后循环判断了。
相似回答