arrayListを再利用しようとしている間に、HashMapの値をjavaに設定しようとしています。私は前にHashMapsで仕事をしていなかったし、まだこの周りに私の頭を抱いているので、私の限られた知識を持ってください。Javaの問題リストを再利用してHashMapを設定する
クラスの学生:
public class Student {
private static int id = 0;
private String name;
private String surname;
private Map<Subject, List<Grade>> grades;
private List<Absence> absences;
}
グレードセッター:
public void setGrades(Map<Subject, List<Nota>> grades) {
this.grades = grades;
}
クラス件名:
public class Subject {
private String name;
}
クラスグレード:
public class Grade {
private Term term;
private String letter;
}
主なプログラム:
Subject subject = new Subject("History");
Map<Subject, List<Grade>> gradeMap = new HashMap<Subject, List<Grade>>();
List <Grade> grades = new ArrayList<Grade>();
grades.add(new Grade(Term.FIRST_TERM, 'A'));
grades.add(new Grade(Term.SECOND_TERM, 'F'));
grades.add(new Grade(Term.THIRD_TERM, 'B'));
gradeMap.put(subject, grades);
student1.setGrades(gradeMap);
キーと値を印刷テスト:
for(Map.Entry<Subject, List<Grade>> t :student1.getGrades().entrySet()){
Subject key = t.getKey();
for (Grade grade : t.getValue()) {
System.out.println(key.getName() + " - " + grade.getNumber());
}
}
しかし、私は、ArrayListのを再利用しようとするたびに、そのグレードの設定必要な多くの学生があるので、私はすべてのデータを失います私STUDENT1インスタンス
grades.clear();
私は今、出力が空であるコンソールに印刷をしようとした場合:
for(Map.Entry<Subject, List<Grade>> t :student1.getGrades().entrySet()){
Subject key = t.getKey();
for (Grade grade : t.getValue()) {
System.out.println(key.getName() + " - " + grade.getNumber());
}
}
私は本当にこの上の任意のコメントや提案をいただければ幸いです、私は何か間違ったことしなければならないが、私は何を知らない明確に:D
感謝を事前に!
ありがとうございます!私はリストを再利用せず、今では完全に動作します。 –