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

如何在main方法中打印数组指定索引位置的学生信息?

问题描述

我已经一年多没写代码了,完全记不起相关知识,开了上百个标签页重新学习但还是彻底卡壳了。我需要在StudentDatabase类中实现打印指定索引位置学生全部信息的功能,目前代码卡壳,不知道该怎么继续。

我的Main方法代码

public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        StudentDatabase database = new StudentDatabase();
        database.addStudent("Joe Schmo", 1101, 3.2);
        database.addStudent("Katie Katerson", 31415926, 3.7);
        database.addStudent("Watson TheBassetHound", 12345, 2.4);
        database.printDatabase();
        
        StudentDatabaseLL databaseLL = new StudentDatabaseLL();
        databaseLL.addStudent("Joe Schmo", 1101, 3.2);
        databaseLL.addStudent("Katie Katerson", 31415926, 3.7);
        databaseLL.addStudent("Watson TheBassetHound", 12345, 2.4);
        databaseLL.printDatabase();
    }
}

目前的StudentDatabase代码

public class StudentDatabase {
    private Student[] database;

    public StudentDatabase() {
        database = new Student[0];
    }

    public void addStudent(String name, int idNumber, double gpa) {
        Student student = new Student(name, idNumber, gpa);
        Student[] newDatabase = new Student[database.length + 1];
        for (int i = 0; i < database.length; i++) {
            newDatabase[i] = database[i];
        }
        newDatabase[newDatabase.length - 1] = student;
        database = newDatabase;
    }

    public void printDatabase() {
        for (int i = 0; i < database.length; i++) {
            Student student = database[i];
            System.out.println(student.getName() + ": (ID=" + student.getIdNumber() + "), (gpa=" + student.getGPA() + ")");
            System.out.println();
        }  
    }

public class findStudentbyIndex {
    
    public void findStudentbyIndex(String[] args){
        int[] intArray = StudentDatabase              
                )
    }
}
解决思路和代码修改

你不需要单独写一个findStudentbyIndex内部类,直接在StudentDatabase类中新增方法即可,步骤如下:

  1. 先写一个获取指定索引学生对象的方法,做索引合法性检查,避免数组越界异常;
  2. 基于获取方法,写一个打印指定索引学生信息的方法,逻辑更清晰。

修改后的完整StudentDatabase代码:

public class StudentDatabase {
    private Student[] database;

    public StudentDatabase() {
        database = new Student[0];
    }

    public void addStudent(String name, int idNumber, double gpa) {
        Student student = new Student(name, idNumber, gpa);
        Student[] newDatabase = new Student[database.length + 1];
        for (int i = 0; i < database.length; i++) {
            newDatabase[i] = database[i];
        }
        newDatabase[newDatabase.length - 1] = student;
        database = newDatabase;
    }

    public void printDatabase() {
        for (int i = 0; i < database.length; i++) {
            Student student = database[i];
            System.out.println(student.getName() + ": (ID=" + student.getIdNumber() + "), (gpa=" + student.getGPA() + ")");
            System.out.println();
        }  
    }

    // 获取指定索引的学生对象,带合法性检查
    public Student getStudentByIndex(int index) {
        if (index < 0 || index >= database.length) {
            System.out.println("索引无效,请输入0到" + (database.length - 1) + "之间的数字");
            return null;
        }
        return database[index];
    }

    // 打印指定索引的学生信息
    public void printStudentByIndex(int index) {
        Student student = getStudentByIndex(index);
        if (student != null) {
            System.out.println("索引" + index + "的学生信息:");
            System.out.println(student.getName() + ": (ID=" + student.getIdNumber() + "), (gpa=" + student.getGPA() + ")");
        }
    }
}

测试功能

你可以在Main方法中添加测试代码,验证功能是否正常:

public static void main(String[] args) {
    StudentDatabase database = new StudentDatabase();
    database.addStudent("Joe Schmo", 1101, 3.2);
    database.addStudent("Katie Katerson", 31415926, 3.7);
    database.addStudent("Watson TheBassetHound", 12345, 2.4);
    database.printDatabase();

    // 测试打印指定索引的学生
    database.printStudentByIndex(1); // 打印Katie的信息
    database.printStudentByIndex(5); // 索引无效,提示错误
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 02:06:05