定义一个长度随机的 ArrayList 类型的数组,并在其中填充若干个1~ 50之间的随机整数,然后从中过滤出所有的质数,并保存到到另一个 ArrayList 类型的数组中。JAVA
时间: 2024-02-27 08:55:19 浏览: 26
好的,我可以帮你回答这个问题。以下是 Java 代码实现:
```java
import java.util.ArrayList;
import java.util.Random;
public class PrimeNumbers {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
Random rand = new Random();
int n = rand.nextInt(10) + 1; // 生成 1~10 之间的随机整数作为 ArrayList 的长度
// 随机填充 ArrayList
for (int i = 0; i < n; i++) {
int num = rand.nextInt(50) + 1; // 生成 1~50 之间的随机整数
list.add(num);
}
System.out.println("原始数组:" + list);
ArrayList<Integer> primeNumbers = new ArrayList<>();
for (int num : list) {
if (isPrime(num)) {
primeNumbers.add(num);
}
}
System.out.println("质数数组:" + primeNumbers);
}
// 判断一个数是否为质数
private static boolean isPrime(int num) {
if (num < 2) {
return false;
}
for (int i = 2; i <= Math.sqrt(num); i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
}
```
这里使用了 `java.util.Random` 类来生成随机数,使用了两个 ArrayList 类型的数组,一个用于存储随机生成的整数,另一个用于存储筛选出的质数。通过遍历第一个 ArrayList 中的每个元素,判断其是否是质数,如果是,则加入到第二个 ArrayList 中。