随机生成一百个1到100的整数,而且一百个数不能重复的,用JavaBean或Java或JSP怎么写?

2025-04-03 15:43:02
推荐回答(5个)
回答1:

import java.util.Random;
import java.util.Vector;

/**
* @author songml
* 随机生成一百个1到100的整数,而且一百个数不能重复
*/
public class Random100Test {
/**
* @param args
*/
public static void main(String[] args) {

int[] a = new int[100];
a = initHun();
for (int i =0 ; i < 100; i ++) {
System.out.println("a["+i+"]"+"的值是:"+a[i]);
}

}

private static int[] initHun() {
int[] a = new int[100];
Vector vec = new Vector();
Random rnd = new Random();
int count = 0;
while (count != 100) {
int x = rnd.nextInt(100);
x++;
if (!vec.contains(String.valueOf(x))){
vec.add(String.valueOf(x));
count ++;
}
}
for (int i =0 ; i < 100; i ++) {
a[i] = Integer.parseInt(vec.get(i).toString());
}
return a;
}
}

回答2:

产生100个整数不重复的数的算法:
import java.util.*;
public class Test
{
public static void main(String[] args)
{
int count = 0;
int[] arr = new int[100];
for (int i = 0; i < 100; i++)
{
arr[i] = (int) (Math.random() * 100) + 1;
for (int j = 0; j < i; j++)
{
if (arr[j] == arr[i])
{
i--;
break;
}
}
}
for (int i = 0; i < 100; i++)
{
if(i%10 == 0)
System.out.print('\n');
System.out.print(arr[i] + " ");
}
}
}

回答3:

上面的方法效率都很低啊,你把100个数放到ArrayList里面,每次随机抽取一个,然后把抽到的删除,循环,最后就是你要的结果了。
前面几个的方法如果运气实在是差的话,要跑很久才能出结果的。照我上面说的,根本不存在运气问题。

回答4:

把生成的随机数,放入到Set里,这样就不能重复了,之后只要不满100个数,就继续生成随机数

回答5:

相当于给100张牌,然后洗牌呗 随便找本数据结构的书 看看shuffle的实现