1. Design a Java interface called Priority that includes two methods: setPriorit
ID: 3797951 • Letter: 1
Question
1. Design a Java interface called Priority that includes two methods:
setPriority and getPriority. The interface should define a way to
establish numeric priority among a set of objects. Design and implement a class
called Task that represents a task (such as on a todo list) that implements the
Priority interface. Create a driver class to exercise some Task objects.
2. Modify the Task class from the project in question 1 so that it also implements
the Comparable interface from the Java standard class library. Implement the
interface such that the tasks are ranked by priority. Create a driver class whose
main method shows these new features of Task objects.
Explanation / Answer
solution
public interface Priority extends Comparable<Priority> {
public int getPriority();
public void setPriority(int n);
}
********************************************************************************************************
public class Task implements Priority {
public int priority;
/**
* @param priority
*/
public Task(int priority) {
this.priority = priority;
}
/**
* @return the priority
*/
@Override
public int getPriority() {
return priority;
}
/**
* @param priority
* the priority to set
*/
@Override
public void setPriority(int priority) {
this.priority = priority;
}
/*
* (non-Javadoc)
*
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return "Task [priority=" + priority + "]";
}
@Override
public int compareTo(Priority o) {
// this is for ascending
return this.getPriority() - o.getPriority();
}
/*
* @Override public int compareTo(Priority o) { //this is for descending
* return o.getPriority()-this.getPriority(); }
*/
}
************************************************************************************************************************
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class PriorityDemo {
public static void main(String[] args) {
List<Priority> priorities = new ArrayList<Priority>();
Priority p = new Task(1);
Priority p1 = new Task(25);
Priority p2 = new Task(112);
Priority p3 = new Task(12);
Priority p4 = new Task(10);
Priority p5 = new Task(512);
Priority p6 = new Task(6);
priorities.add(p);
priorities.add(p1);
priorities.add(p2);
priorities.add(p3);
priorities.add(p4);
priorities.add(p5);
priorities.add(p6);
// before sorting based on priority
System.out.println("before sorting based on priority");
for (Priority pri : priorities) {
System.out.println(pri);
}
// after sorting based on priority
System.out.println("after sorting based on priority");
Collections.sort(priorities);
for (Priority prip : priorities) {
System.out.println(prip);
}
}
}
output
before sorting based on priority
Task [priority=1]
Task [priority=25]
Task [priority=112]
Task [priority=12]
Task [priority=10]
Task [priority=512]
Task [priority=6]
after sorting based on priority
Task [priority=1]
Task [priority=6]
Task [priority=10]
Task [priority=12]
Task [priority=25]
Task [priority=112]
Task [priority=512]
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.