JAVA,要个随机数字,并且出现过的以后不再出现

来源:百度知道 编辑:UC知道 时间:2024/09/22 18:17:52

你这是将随机出来的数放在数组里面?
我怎么看都是你先将所有可能出现的数放在一个数组里面 假设现在还有有n个没被选过 就随机出现一个1到n的数 然后将取出数组该位置的值 将已经选过的放到后面去
感觉实在是太浪费空间了 本来以为我的办法比你应该好的
不过想了半天 觉得如果要将一个范围的数大部分都随机不重复出现的话我的方法效率超级低 反正1到100不重复将所有的数随机出来我电脑卡住了 还是我强制关掉的 如果是将一个大范围的数字只是随机不重复出现一小部分的话 我的方法就要比你好一点了

import java.util.*;
public class test2 {
public static void main(String args[]){
int min = 1;
int max = 1000;
int n = 100;
Random rand = new Random();
ArrayList<Integer> list = new ArrayList<Integer>();

for(int i=0; i<n; i++) {
int num = max - min + 1 - list.size();
int m;
while(list.contains(m = Integer.valueOf(rand.nextInt(num)))){ }
list.add(m);
System.out.println(m);
}
System.out.println(list.size());
System.out.println(list);
}
}

public class test2 {
public static void main(String args[]){
int[] result = new int[100];