【问题标题】:many grades for student array学生数组的许多成绩
【发布时间】:2016-01-10 21:46:19
【问题描述】:

我正在尝试为学生成绩修复一个小程序。 我有一堂学生课。在我的主程序中,我通过输入将学生添加到 ArrayList 中。后来我想为那个学生添加很多成绩。

我该怎么办?我更喜欢使用数组。但是我不知道怎么做 。每次我创建一个新学生并添加成绩时,我可以创建一个新数组吗?

private String name;
private float grade;


public void student(String name, float grade){
    this.name = name;
    this.grade = grade;

}

public String getName(){
    return name;
}


public float getGrade(){
    return grade;
}







public String toString(){
    return String.format(name + " have grades " + grade );                          
}

【问题讨论】:

  • 如果集合的大小是动态的,则使用LinkedList
  • 那你要什么?
  • 或 hashmap,但您需要在学生班级内有一个用于成绩的数组,您有一个学生对象列表,每个学生对象应该有名称、成绩数组等。数据设计是在开始编写程序之前非常重要。
  • 如何为我创建的每个学生添加多个成绩? @Lopan
  • 每个学生的成绩数组。

标签: java arrays arraylist


【解决方案1】:

只需将成绩从浮点数更改为浮点数数组即可。

public class Student{
        private String name;
        private float[] grades;


        public void Student(String name, float[] grades){

            this.name = name;
            this.courses = Arrays.copyOf(grades, grades.length);

        }

        public String getName(){
            return name;
        }


        public float getGradeAtIndex(int index){
            return grades[index];
        }

    // Add methods, getters, setters as you wish.
}

请注意,此代码尚未经过测试,因此在 getGradeAtIndex 方法中,您可能会插入一个超出数组边界的索引,在它实际尝试提取数据并返回 null 以防检查失败之前应该进行检查。

尝试使用正确的编程格式,这将使您未来的生活变得轻松。类名应以大写字母开头,方法和 var 以 camelCases 开头。

希望这会有所帮助,祝你好运。

【讨论】:

  • 在这种情况下,他必须在创建学生之前知道年级数。他没有说他是否知道,所以我会使用动态 ArrayList
【解决方案2】:

如果每个学生的成绩数量未知,请使用ArrayList 成绩。

public class Student{
    private String name;
    private ArrayList<float> grades;


public void student(String name){
    this.name = name;

}

public String getName(){
    return name;
}    

public void addGrade(float grade){
    this.grades.add(grade);
}

public String toString(){
    return String.format(name + " have grades " + grade );                          
}

不要忘记从java.util.ArrayList 导入它。查看文档here

【讨论】:

  • 是的,构造函数和 getter 设置器会更复杂一些。
  • 是的,但他可以使用ArrayList 已经拥有的所有功能。处理更多成绩比仅按学生一个成绩更复杂,但也有更多可能性。
猜你喜欢
  • 1970-01-01
  • 2021-05-31
  • 1970-01-01
  • 2013-02-10
  • 2021-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多