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

Java中如何移除多数组同索引的指定元素?(作业实操)

学生成绩筛选输出实现方案

方法一:直接遍历输出(无需临时数组)

这种方式最简单高效,直接遍历两个数组的索引,判断成绩是否为-1,符合条件就直接打印:

public class Main {
    public static void main(String[] args) {
        String[] students = {"A","B","C","D","E"};
        int[] mathsMarks = {95,50,-1,80,-1};
        
        // 遍历数组索引
        for (int i = 0; i < students.length; i++) {
            // 判断成绩不是-1才输出
            if (mathsMarks[i] != -1) {
                System.out.println("学生:" + students[i] + ",数学成绩:" + mathsMarks[i]);
            }
        }
    }
}

运行后会输出:

学生:A,数学成绩:95
学生:B,数学成绩:50
学生:D,数学成绩:80

方法二:用临时数组存储有效数据

如果一定要用临时数组来剔除无效条目,需要先统计有效数据的数量,再创建对应长度的数组,最后填充并输出:

public class Main {
    public static void main(String[] args) {
        String[] students = {"A","B","C","D","E"};
        int[] mathsMarks = {95,50,-1,80,-1};
        
        // 第一步:统计有效成绩的数量
        int validCount = 0;
        for (int mark : mathsMarks) {
            if (mark != -1) {
                validCount++;
            }
        }
        
        // 第二步:创建对应长度的临时数组
        String[] validStudents = new String[validCount];
        int[] validMarks = new int[validCount];
        
        // 第三步:填充临时数组
        int index = 0;
        for (int i = 0; i < students.length; i++) {
            if (mathsMarks[i] != -1) {
                validStudents[index] = students[i];
                validMarks[index] = mathsMarks[i];
                index++;
            }
        }
        
        // 第四步:遍历临时数组输出
        for (int i = 0; i < validStudents.length; i++) {
            System.out.println("学生:" + validStudents[i] + ",数学成绩:" + validMarks[i]);
        }
    }
}

这段代码的输出和方法一完全一致,只是多了一步将有效数据存入临时数组的过程。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 00:41:38