Prioritizing Submissions
A submission that was made earlier will be graded earlier. This is an example of a first-in-first-out situation and a Queue will be a natural choice to store submissions.
Imagine we want to prioritize grading of submissions on AutoGrader. We want to consider the number of prior submission by a student, in addition, or instead of, the order which the submission was received. For the sake of this contrived example, assume the fewer prior submissions you've made the higher the priority of your submission to get AutoGrader processing time.
We can sort (order) the submissions, using Collections.sort
, based on the number of prior submissions but we need to overwrite the natural ordering of Submission
objects. In Java, you can do this by providing a Comparator
to the Collections.sort
. An example is provided in the Main.java
in the demo
package of the starter code.
List<String> students = getStudents();
List<Submission> submissions = getSubmissions(students);
System.out.print("Submission sorted (priority ordering):");
Collections.sort(submissions, new LessSubmissionHigherPriority());
System.out.println(submissions);
where LessSubmissionHigherPriority
is defined as:
private static class LessSubmissionHigherPriority
implements Comparator<Submission> {
@Override
public int compare(Submission s1, Submission s2) {
return s1.getNumPriorSubmission() - s2.getNumPriorSubmission();
}
}