通过不使用 Collection Shuffle 来防止重复数字 [Java]
prevent repetition of the numbers by not use of Collection Shuffle [Java]
我在我的代码中使用了随机函数,但是我不知道如何防止 repetition.Also 我阅读了关于这个主题的另一个问题,但我不想使用 "Shuffle"。
感谢所有帮助和线索。
设置不允许重复
Set set = new HashSet();
while (set.size() < 20) {
set.add(r.nextInt(100));
}
根据定义,随机性包括重复的可能性,因为每个计算出的随机数都独立于之前的随机数。
您应该更新您的逻辑,例如将生成的数字保存到列表中,并检查该数字是否包含在该列表中。如果是,循环直到生成一个新的。
您还可以添加最大循环次数以避免程序永远挂起。
您应该遵循以下算法步骤来获得需求的解决方案:
声明辅助容器来存储你的ATN号码,这里Set是合适的,因为Set不允许重复输入。
生成随机数。
检查您的辅助容器中是否有此物品?
是然后转到步骤 2。
否则保存到辅助存储
执行您的业务逻辑。
我在我的代码中使用了随机函数,但是我不知道如何防止 repetition.Also 我阅读了关于这个主题的另一个问题,但我不想使用 "Shuffle"。
感谢所有帮助和线索。
设置不允许重复
Set set = new HashSet();
while (set.size() < 20) {
set.add(r.nextInt(100));
}
根据定义,随机性包括重复的可能性,因为每个计算出的随机数都独立于之前的随机数。
您应该更新您的逻辑,例如将生成的数字保存到列表中,并检查该数字是否包含在该列表中。如果是,循环直到生成一个新的。
您还可以添加最大循环次数以避免程序永远挂起。
您应该遵循以下算法步骤来获得需求的解决方案:
声明辅助容器来存储你的ATN号码,这里Set是合适的,因为Set不允许重复输入。
生成随机数。
检查您的辅助容器中是否有此物品?
是然后转到步骤 2。
否则保存到辅助存储
执行您的业务逻辑。