Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

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]