我创建了500k阵列大小,我希望用随机数填充它,没有重复

时间:2016-03-26 20:12:38

标签: java

我需要用我的代码

填充这个数组500000个int数字
public class lab_02 {

    public static void main(String[] args) {
       // 500000 Array
        Array array = new Array (500000);
   }

  }

我不知道我应该怎么做使用循环或递归  谢谢

2 个答案:

答案 0 :(得分:4)

1)如果您不需要重复项,请使用Set

Set<Integer> intSet = new HashSet<Integer>();

2)然后你可以添加随机生成的int将它添加到Set

while (intSet.size() < DESIRED_SIZE) {
//generate the randomInteger - DESIRED_SIZE is 500k in your case 
intSet.add(randomInteger);
}

答案 1 :(得分:1)

这里棘手的部分是确保独特性。检查物品是否是唯一的可能很昂贵。由于OP没有说明随机数的界限是什么,我假设这个解决方案的最小1和最大500000。

一种方法是按顺序输入数字0到500000然后随机播放数组。

int size = 500000;
List<Integer> list = new ArrayList<Integer>();
for (int i = 0; i < size; i++) {
    list.add(i);
}
Collections.shuffle(list);
for (int i = 0; i < size; i++) {
    System.out.println(list.get(i));
}