JAVA随机数之多种方法从给定范围内随机N个不重复数

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

JAVA随机数之多种方法从给定范围内随机N个不重复数在Java中,有多种方法可以生成指定范围内的随机数,并确保生成的随机数不重复。

下面将介绍几种常用的方法。

1. 使用java.util.Random类的nextInt方法:
```
import java.util.HashSet;
import java.util.Random;
public class RandomNumberGenerator
public static void main(String[] args)
int min = 1;
int max = 100;
int n = 10;
if (max - min + 1 < n)
System.out.println("范围不足以生成指定数量的随机数");
} else
HashSet<Integer> set = new HashSet<>(;
Random random = new Random(;
while (set.size( < n)
int randomNumber = random.nextInt(max - min + 1) + min;
set.add(randomNumber);
}
for (int number : set)
System.out.println(number);
}
}
}
```
上述代码中,我们使用了HashSet来存储生成的随机数,通过判断HashSet的大小是否达到指定数量n来控制生成的随机数不重复。

使用Random类的nextInt方法生成的随机数范围为[min, max],通过加上min 来调整范围为[min, max]。

2. 使用java.util.concurrent.ThreadLocalRandom类的nextInt方法:
```
import java.util.HashSet;
import java.util.concurrent.ThreadLocalRandom;
public class RandomNumberGenerator
public static void main(String[] args)
int min = 1;
int max = 100;
int n = 10;
if (max - min + 1 < n)
System.out.println("范围不足以生成指定数量的随机数");
} else
HashSet<Integer> set = new HashSet<>(;
while (set.size( < n)
int randomNumber = ThreadLocalRandom.current(.nextInt(min, max + 1);
set.add(randomNumber);
}
for (int number : set)
System.out.println(number);
}
}
}
```
上述代码中,我们使用了ThreadLocalRandom类的nextInt方法来生
成随机数。

通过传递min和max参数,我们可以控制随机数的范围为[min, max]。

使用HashSet来确保生成的随机数不重复。

3. 使用java.util.Set的contains方法:
```
import java.util.HashSet;
import java.util.Set;
public class RandomNumberGenerator
public static void main(String[] args)
int min = 1;
int max = 100;
int n = 10;
if (max - min + 1 < n)
System.out.println("范围不足以生成指定数量的随机数");
} else
Set<Integer> set = new HashSet<>(;
while (set.size( < n)
int randomNumber = (int) (Math.random( * (max - min + 1)) + min;
if (!set.contains(randomNumber))
set.add(randomNumber);
}
}
for (int number : set)
System.out.println(number);
}
}
}
```
上述代码中,我们使用了Math.random方法来生成随机数,并加以调整范围为[min, max]。

通过使用Set的contains方法来判断生成的随机数是否已存在,若不存在则加入到Set中。

通过控制循环条件和Set的size来确保生成的随机数数量为n,并且不重复。

总结:
通过以上几种方法,我们可以在Java中生成指定范围内的随机数,并确保生成的随机数不重复。

这些方法都可以根据项目的具体需求来选择使用,以达到最佳的性能和效果。

相关文档
最新文档