Java에서 HashMap 값을 설정하려고 시도하는 중 arrayList를 다시 사용하려고합니다. 나는 전에 HashMaps로 일한 적이 없었고 아직도 이것에 대해 머리 글자를 쓰고있다. 그래서 나는 제한된 지식을 가지고있다.자바 문제를 재사용하여 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의를 reutilize하려고 할 때마다 내가 콘솔에 인쇄하려고하면 내 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
사전에 감사!
감사합니다. 나는 목록을 재사용하지 않았고 이제는 완벽하게 작동합니다. –