Java 随机数的生成和生成数的排除

Java 随机数的生成和生成数的排除,java,Java,在Java中可以做到这一点吗?我想生成一个随机数,以便给定一个范围,例如:1到70之间-每次生成随机数时,都应将其从生成结果中排除。 所以[1,70]兰德=56(现在56不应该在下次考虑) [1,70]=63(现在56,63应该被排除在生成之外,直到我的代码运行)这相当于洗牌一个包含[1..70]的数字数组,然后一次处理一个。在谷歌上查找“洗牌算法”。这里有一个链接这相当于将包含[1..70]的数字数组洗牌,然后一次处理一个。在谷歌上查找“洗牌算法”。这里有一个链接我在这里问了同样的问题: 一般


在Java中可以做到这一点吗?我想生成一个随机数,以便给定一个范围,例如:1到70之间-每次生成随机数时,都应将其从生成结果中排除。
所以[1,70]兰德=56(现在56不应该在下次考虑)

[1,70]=63(现在56,63应该被排除在生成之外,直到我的代码运行)

这相当于洗牌一个包含[1..70]的数字数组,然后一次处理一个。在谷歌上查找“洗牌算法”。这里有一个链接

这相当于将包含[1..70]的数字数组洗牌,然后一次处理一个。在谷歌上查找“洗牌算法”。这里有一个链接

我在这里问了同样的问题:


一般策略类似于用70个值填充数组。只需删除您根据上面的链接随机生成的值。

我在这里问了同样的问题:


一般策略类似于用70个值填充数组。只需删除您根据上面的链接随机生成的值。

您可以将范围填充到一个数组中并洗牌该数组。这将是低效的,尽管对于非常大的范围

您可以将范围填充到一个数组中并洗牌数组。尽管对于非常大的范围,这将是低效的

另一个简单的选择,使用哈希映射跟踪随机数。 它有点快又脏

HashMap<Integer,Integer> hmRandomNum = new HashMap<Integer,Integer>();

Integer a = < generate random number>

if( hmRandomNum.get(a) == null)
{
     hmRandomNum.put(a,a);
}
else
{
     // ignore this random number. this was already selected and present in the hashmap.
}

//Iterate depending on how many numbers you want. 
HashMap hmRandomNum=newhashmap();
整数a=<生成随机数>
if(hmRandomNum.get(a)==null)
{
hmRandomNum.put(a,a);
}
其他的
{
//忽略此随机数。此随机数已被选中并出现在hashmap中。
}
//根据需要的数字数量进行迭代。

另一个简单的选择,使用哈希映射跟踪随机数。 它有点快又脏

HashMap<Integer,Integer> hmRandomNum = new HashMap<Integer,Integer>();

Integer a = < generate random number>

if( hmRandomNum.get(a) == null)
{
     hmRandomNum.put(a,a);
}
else
{
     // ignore this random number. this was already selected and present in the hashmap.
}

//Iterate depending on how many numbers you want. 
HashMap hmRandomNum=newhashmap();
整数a=<生成随机数>
if(hmRandomNum.get(a)==null)
{
hmRandomNum.put(a,a);
}
其他的
{
//忽略此随机数。此随机数已被选中并出现在hashmap中。
}
//根据需要的数字数量进行迭代。

Duplicate to question:Duplicate to question:或者更好地使用JDK附带的洗牌算法。是的,我忘了里面有。或者最好使用JDK自带的洗牌算法。是的,我忘了里面有。