我建立了一个范围,我想从该范围 (10%) 中选择一组随机数,同时确保它没有重复值。
我如何以及在我的程序中的何处编写代码?
以下是摘录。
// Number of Items
int range = numberOfItems [itemNumber - 1];
// Determine 10 percent of the given range
int tenPercentOfRange = (int)(range * 0.1);
int number = 0;
int[] numbers = new int[tenPercentOfRange];
int index = 0;
for(;index < tenPercentOfRange;)
{
// Randomly select 10% of the items for a given item.
number = (int) (range * Math.random()) + 1;
if(!Arrays.asList(numbers).contains(number))
{
numbers[index] = number;
index++;
// ..................
最佳答案
最简单的方法(虽然不是最有效的)可能是用所有元素填充一个列表,使用 Collections.shuffle()
, 然后选择前 10% 的元素。
由于排列没有两次相同的主菜(假设您以这种方式填充它),前 10% 的元素也将是唯一的,因此它适合。
关于java - 避免重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10567622/