2017-06-12 153 views
-3

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

例如,如果按钮点击一个随机数产生像5它存储在数组然后再次点击按钮和一个更多的随机数产生,如果该随机数在数组中可用然后生成另一个匹配数组,如果随机数不存在然后存储在Array中。

我想要一些简单的代码,一些代码可以在这个网站,但我不明白这些代码。我正在使用Java 8和eclipse Oxygen。

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

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

“我想一些简单的代码,一些代码都可以在这个网站,但我不明白这些代码。”那么为什么不链接到相关问题,并提供有关您在该代码中不理解的细节?再次问同样的问题没有意义 - 你可能会得到相同类型的代码,但你仍然不明白,浪费了人们回答的时间...... –

+0

Stackoverflow是为问题提供解决方案,它不是一个代码写入服务。如果你想要一些简单的代码,请雇人为你写。我每小时收费80欧元。 –

+0

但我现在不可用。 –

回答

2

您可以通过产生越来越多的数组,然后洗牌它生成没有重复的随机数。

0

您可能会生成一个随机数,将其存储到一个数组中并检查每个新数字是否与该数组相对应。这可能会减慢你的过程。

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

-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 
    } 
}