So I have three classes:
- Lab
- Student
- Exam
I need to take in input an ID of a Student, add exams of Exam class into a Treeset with Exam type, all of this inside the Student class.
After doing that, I need to print this Treeset with an Iterator.. but all I got is some weird: java.util.TreeMap$KeyIterator@1b6d3586 instead.
I created the Iterator and passed the Treeset, but the code won't work.
Here the files.
Lab.java
public class Lab {
    public static void main(String[] args) {
        Student stu = new Student();
        Student.insert();
        System.out.println("Insert ended.\n");
        stu.print();
        System.out.println("\nEnd of the program.");
    }
}
Student.java
import java.util.Iterator;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeSet;
public class Student implements Comparable<Student>{
    private static int ID;
    private static Set<Exam> exams = new TreeSet<Exam>();
    public static void insert() {
        Scanner input  = new Scanner(System.in);
        Scanner input1 = new Scanner(System.in);
        Scanner input2 = new Scanner(System.in);
        Scanner input3 = new Scanner(System.in);
        int exam_code = 1;
        String exam_name;
        int exam_grade;
        System.out.println("Student's ID: ");
        ID = input.nextInt();
        System.out.println("--- EXAMS INSERT ---");
        while (exam_code != 0) {
            System.out.println("Exam's code: ");
            exam_code = input1.nextInt();
            if (exam_code == 0) {
                break;
            }
            else {
                System.out.println("Exam's name: ");
                exam_name = input2.nextLine();
                System.out.println("Exam's grade: ");
                exam_grade = input3.nextInt();
                exams.add(new Exam(exam_code, exam_name, exam_grade));
            }
        }
        input.close();
        input1.close();
        input2.close();
        input3.close();
    }
    public void print() {
        System.out.println("ID: " + ID);
        System.out.println("\nExams done: ");
        Iterator<Exam> es = exams.iterator();
        boolean hasnext = false;
        while (hasnext != true) {
            if (es.hasNext()) {
                System.out.println(es);
                hasnext = true;
            }
            else {
                hasnext = false;
            }
        }
    }
    @Override
    public int compareTo(Student o) {
        // TODO Auto-generated method stub
        return 0;
    }
}
Exam.java
public class Exam implements Comparable<Exam>{
    public int exam_code;
    private String exam_name;
    private int exam_grade;
    public Exam(int code, String name, int grade) {
        exam_code = code;
        exam_name = name;
        exam_grade = grade;
    }
    @Override
    public int compareTo(Exam o) {
        // TODO Auto-generated method stub
        return 0;
    }
}
 
    