首页 > 解决方案 > 如何生成三个不相等的数字?

问题描述

这里的数字生成:

for( int i=0; i<3; i++) {
    int randomNumbers = random.nextInt(10) + 1; 
}

在这里我可以收到相同的数字。

例如:5,7,5;

但我只需要收到不同的号码:5,1,9.

有没有可能用一些小代码或者我应该为它写一些方法?

标签: javaarraysfor-loopjvmset

解决方案


您可以使用Set仅包含唯一值的 a :

Set<Integer> randomInts = new HashSet();
while(randomInts.size() < 3) {
    randomInts.add(random.nextInt(10) + 1);
}

当然,您需要面对过采样,但如果性能不是最重要的,这种方法很容易扩展。


推荐阅读