私はJavaでプログラムを書いています。これは、学生、科目、教師などのさまざまなリストを持つ学生管理のようなものです。プログラムには、特に、1 つの一般的な科目リストと各生徒の 1 つの科目リストが含まれます。問題は、2 つの異なる教科を作成して一般教科リストに追加し、後でそのうちの1 つを見つけて学生の教科リストに追加すると、学生の教科リストにこれらの両方の教科が含まれることです。
Web を検索しましたが、何を探すべきかを知るのはそれほど簡単ではありません。
私は自分でデータ構造を書いています。
私のコードは次のようになります。
public class Subject() {
Subject next;
//constructor with parameters
}
public class Subjectlist() {
private Subject first;
//methods for adding to list, deleting, find and so on
}
public class Participation {
Subjectlist subjects;
public Participation() {
subjects = new Subjectlist();
}
}
public class Student() {
Participation participation;
public Student(paramters) {
participation = new Participation();
}
public class mainclass() {
public static void main(String [] args) {
Subjectlist subjectlist = new Subjectlist();
Studentlist students = new Studentlist();
Student student = new Student(parameters);
students.addToList(student);
Subject subject1 = new Subject(parameters);
Subject subject2 = new Subject(parameters);
subjectlist.addToList(subject1);
subjectlist.addToList(subject2);
Subject subject = subjectlist.find(subjectid); //Finds the subject with an ID given in the constructor
student.participation.subjects.addToList(subject);
//Now student.participation.subjects contains both subject1 and subject2
}
}
どんな助けでも大歓迎です!
編集:
これは find メソッドと addToList メソッドです。
public String addToList(Subject new) {
Subject pointer = first; //Subject first is declared in the class
if(new == null) {
return "The subject was not added.";
}
else if (first == null) {
first = new;
return "The subject was added";
}
else {
while ( pointer.next != null )
pointer = pointer.next;
pointer.next = new;
return "The subject was added";
}
}
public Subject find(String subjectid) {
Subject found = null;
Subject pointer = first;
while (pointer != null) {
if (pointer.getSubjectID().equals(subjectid)) {
found = pointer;
}
pointer = pointer.next;
}
return found;
}