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
相关产品推荐
相关产品推荐

