PriorityQueue不打印我想要的东西

时间:2012-03-05 23:54:33

标签: java

嗨,这是我在完成作业之前已经放在一起的测试课程,我发现它不按我想要的方式工作。这是我的班级:

JobLog:

import java.util.PriorityQueue;

public class JobLog {
    private PriorityQueue<Job> log;

    public JobLog() {
        log = new PriorityQueue<Job>();
    }

    public void addJob(Job newJob) {
        log.add(newJob);
    }

    public void addJob(int clock, int exectionTime, int jobNumber,
            int priorityLevel) {
        Job newJob = new Job(clock, exectionTime, jobNumber, priorityLevel);
        addJob(newJob);
    }

    public Job getNextJob() {
        return log.peek();
    }

    public Job removeNextJob() {
        return log.remove();
    }
}

识别TestClass

public static void main(String[] args) {
    // TODO code application logic here

    JobLog waitline=new JobLog();
    Job Joba=new Job(3,3,4,12);
    Job Jobb=new Job(3,3,4,2);
    Job Jobc=new Job(3,3,4,3);
    Job Jobd=new Job(3,3,4,4);
    Job Jobe=new Job(3,3,4,5);
    Job Jobf=new Job(3,3,4,5);
    Job Jobg=new Job(3,3,4,1);

    waitline.addJob(Joba);
    waitline.addJob(Jobb);

    System.out.println(waitline.getNextJob());
}

我得到了这个结果。

assignment3_csc225.Job@1db04ed

我想要返回作业的所有信息。怎么样?

2 个答案:

答案 0 :(得分:3)

您必须为作业类编写toString方法,以便java知道如何显示它。你得到的是默认(对象)toString输出。

答案 1 :(得分:1)

您可以重载Job类上的toString()方法以返回描述Job的字符串。

现在,当您打印出一个Job时,将返回此字符串。