java获取n个不同的随机整数
时间: 2024-01-31 15:03:01 浏览: 31
可以使用Random类和HashSet数据结构实现,代码如下:
```java
import java.util.HashSet;
import java.util.Random;
public class RandomGenerator {
public static HashSet<Integer> getRandomNumbers(int n) {
Random random = new Random();
HashSet<Integer> numbers = new HashSet<>();
while (numbers.size() < n) {
int num = random.nextInt(1000); // 生成0-999之间的整数
numbers.add(num);
}
return numbers;
}
public static void main(String[] args) {
HashSet<Integer> numbers = getRandomNumbers(5);
System.out.println(numbers);
}
}
```
运行结果:
```
[3, 84, 330, 476, 707]
```
这个程序可以随机生成n个不同的0-999之间的整数,并且使用HashSet数据结构进行去重。
相关问题
如何用java判断一个随机整数为水仙花数
要判断一个随机整数是否为水仙花数,你可以按照以下步骤进行:
1. 获取随机整数:你可以使用Java的Random类来生成一个随机整数。例如,使用`nextInt()`方法生成一个范围在100到999之间的随机整数。
```java
Random random = new Random();
int randomNumber = random.nextInt(900) + 100; // 生成100到999之间的随机整数
```
2. 判断是否为水仙花数:水仙花数是指一个n位数(n>1),其各位数字的n次方之和等于该数本身。因此,我们需要拆解这个随机整数,计算各个位数的n次方之和,并判断是否等于该随机整数。
```java
int number = randomNumber;
int sum = 0;
int digits = String.valueOf(number).length();
while (number > 0) {
int digit = number % 10;
sum += Math.pow(digit, digits);
number /= 10;
}
boolean isArmstrong = (sum == randomNumber);
```
3. 输出结果:根据判断结果输出相应信息。
```java
if (isArmstrong) {
System.out.println(randomNumber + " 是水仙花数");
} else {
System.out.println(randomNumber + " 不是水仙花数");
}
```
以上是用Java判断一个随机整数是否为水仙花数的方法。希望能对你有所帮助!如有更多问题,请随时提问。
java 获取随机时间戳不是固定时间戳
如果你想获取一个随机的时间戳,可以使用Java的Random类来生成一个随机的时间戳,代码如下:
```java
import java.util.Random;
Random random = new Random();
long timestamp = System.currentTimeMillis() - random.nextInt(1000000);
System.out.println(timestamp);
```
其中,System.currentTimeMillis()方法返回的是当前时间距离1970年1月1日00:00:00经过的毫秒数,而Random.nextInt(n)方法返回一个0到n-1的随机整数,这里我们使用这个方法来生成一个0到999999之间的随机整数,然后将其减去当前时间戳,即可得到一个随机的时间戳。