You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中如何在ArrayList动态数组处理函数中调用布尔型质数判断方法

代码修改与整合说明

你的代码逻辑框架是对的,只需要做小调整就能完成需求,两种实现方式如下:

方式1:保留prime_check方法(更推荐,逻辑拆分清晰、可复用)

你原来的代码只有一个语法错误:prime_array里的if ( = true)漏写了判断条件,修复后就能正常运行,修改后的prime_array代码如下:

public static ArrayList<Integer> prime_array(ArrayList<Integer> listA2) {
    ArrayList <Integer> nums1=new ArrayList<Integer>();
    for (int n1: listA2) {
        // 直接调用你写好的prime_check方法判断质数
        if (prime_check(n1)) {
            nums1.add(n1);
        }
    }
    return nums1;
}

运行前注意把main方法里的new ArrayList<Integer(Arrays.asList(补全尖括号,改为new ArrayList<Integer>(Arrays.asList(,否则会编译报错。


方式2:把prime_check逻辑完全整合进prime_array

如果不需要单独的质数判断方法,直接把判断逻辑搬到遍历循环里即可,不需要再单独定义prime_check方法,整合后的完整代码如下:

import java.util.ArrayList;
import java.util.Arrays;

public class notes {
    public static void main(String[] args) {
        ArrayList <Integer> listA2=new ArrayList<Integer>(Arrays.asList(5,6,7,8,10,13,17,19,20,26,12,31));
        System.out.println(prime_array(listA2));
    } 

    public static ArrayList<Integer> prime_array(ArrayList<Integer> listA2) {
        ArrayList <Integer> nums1=new ArrayList<Integer>();
        // 遍历输入列表的每个数字
        for (int n1: listA2) {
            // 这里直接复用原来prime_check的判断逻辑
            boolean isPrime = true;
            if(n1 <= 1) {
                isPrime = false;
            } else {
                for (int i = 2; i<= n1/2; i++) {
                    if ((n1 % i) == 0) {
                        isPrime = false;
                        break;
                    }
                }
            }
            // 是质数就加入结果列表
            if (isPrime) {
                nums1.add(n1);
            }
        }
        return nums1;
    }
}

内容的提问来源于stack exchange,提问作者mzz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 09:45:03