java - 为什么我无法将元素添加到 Java 的 LinkedList 中?

标签 java

这是我无法弄清楚的实验室的一部分...我无法弄清楚花名册类中的 addGrade 方法有什么问题,我必须在该方法中为学生添加成绩,并且如果学生尚不存在,请创建一个新学生,然后添加成绩。请注意,最初,此类没有实例变量 Student Stu,这是我在尝试让事情正常运行时添加的。

为学生提供一个构造函数,学生成绩保存在一个链接列表中。我在这里只放了一部分代码...它有获取学生姓名、获取分数、添加分数和获取平均分数的方法。

我的代码在经过一些编辑后不再工作...当它部分工作时,它只是用最新的代码覆盖了以前的学生。学生 a 添加了 5 年级,然后学生 b 添加了 7 年级,然后再次添加了学生 a 10 年级。这应该让学生 a 在链接列表中包含 2 个条目 (5, 10)。当我运行我的代码时,它只有学生 a 为 10,但也不能完全工作。

public class Student {
private String name;
private List scores = new LinkedList<>();

  public Student(String name)
  {
     this.name = name;
  }

  public void addGrade(int score)
  {
     scores.add(score);
  }


public class Roster {

String name;
int score;
Student stu;

   //Adds a grade to the end of a list of grades for the named student.
   //Should work even if no student with this name has ever been seen before.
   public void addGrade(String name, int score) {
       Student temp = new Student(name);
       stu.addGrade(score);
   }
    //Gets the specified grade from the named student's scores.
   public int getGrade(String name, int index) {
       int a = stu.getScore(index);
       return a;
   }
    //Gets the average for the named student.
   public double getAverage(String name) {
       return stu.getAverage();
   }
}

最佳答案

花名册是学生列表。

学生有一个分数列表。

这不是您需要的全部代码,只是 Roster 类和其中的 addGrade() 方法的一部分:

public class Roster {
    List<Students> students = new LinkedList<Student>();

    public void addGrade(String name, int score) {
        // Student s = null;
        // Search for existing student.
        for (Student currentStu : students) {
            if (currentStu.name.equals(name) {
                s = currentStu;
            }
        }

        if (s == null) {
            //Student not in our roster. Add him.
            s = new Student(name);
        }

        // Add the score to that student.
        s.addGrade(score);
    }
}

关于java - 为什么我无法将元素添加到 Java 的 LinkedList 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29734929/

相关文章:

java - Maven 构建成功,但我的测试用例没有在 Eclipse 中运行

java - 我可以向 InputStream 发送什么来表示已达到 EOF?

Java Eclipse Theme.AppCompat 错误

java - -source 1.3 不支持泛型

Java - 为什么 str.substring(str.length()) 是可接受的代码行?

java - 反向地理编码坐标地址

Java 模运算符

java - 按 "back button"退出后 Android 应用程序崩溃

java - 并发访问时 Treemap 中的重复键

java - 调用 JNI 函数创建对象