生成随机数而不重复

时间:2017-06-12 20:17:26

标签: java arrays random numbers

我想在1到50之间生成20个随机数,没有重复数字并存储到数组中。

例如,如果按钮单击一个随机数生成像5它存储在数组中然后如果再次单击按钮,如果该随机数在数组中可用则生成另一个随机数然后生成另一个并与数组匹配,如果该随机数是然后没有存储在Array中。

我想要一些简单的代码,本网站提供了一些代码,但我无法理解这些代码。我正在使用Java 8和eclipse Oxygen。

我使用这个简单的代码生成随机数

    Random rand=new Random();
    i=1;
    i=1+rand.nextInt(8);

3 个答案:

答案 0 :(得分:2)

您可以生成一个不增加数字的随机数,方法是生成一个数字越来越多的数组,然后将其混洗。

答案 1 :(得分:0)

您可以生成一个随机数,将其存储到一个数组中,并检查该数组的每个新数字。这可能会减慢您的流程。

只要一个包含50个整数的数组不能填满你的所有内存,你就可以创建1到50的int[50]个整数,并删除(或创建一个没有的新数组)随机选择的数组元素。它不会提供良好的性能,但似乎这并不重要。

答案 2 :(得分:-2)

尝试这样的somenthing:

private List<Integer> numbers = new ArrayList<Integer>();

private Integer generate() {
    Random rand = new Random();
    int aux;
    do {
        aux = rand.nextInt(49) + 1; // Random numbers in between 1 and 50
    } while (numbers.contains(aux)); // Prevents duplication
    return aux;
}

public void btnClick() {
    if (numbers.size() < 20) { // Limits to 20 numbers
        numbers.add(generate()); // Store in an list
    }
}