Develop a program to maintain a list of homework assignments. When an assignment is assigned, add it to the list, and when it is completed, remove it. You should keep track of the due date. Your program should provide the following services: 1. Add a new assignment. 2. Remove an assignment. 3. Provide a list of the assignments in the order they were assigned. 4. Find the assignment(s) with the earliest due date. Solution import java.util.ListIterator; import java.util.LinkedList; import java.util.Scanner.*; public class HomeworkList { private LinkedList theList; public HomeworkList() { theList = new LinkedList(); } public void add(Assignment assignment) { theList.addLast(assignment); } public void remove(Assignment assignment) { theList.remove(assignment); } public void showAssignments() { String message; int i = 1; for (Assignment assignment : theList) { message = \"Assignment #\" + (i++) +\":\ \" +assignment.getDescription() + \"\ Due date: \" +assignment.getDueDate(); System.out.println(message); } } public Assignment findEarliest() { Assignment earliest = null; Assignment current; ListIterator iter = theList.listIterator(); if (iter.hasNext()) { earliest = iter.next(); while (iter.hasNext()) { current = iter.next(); if (current.compareTo(earliest) < 0) { earliest = current; } } } return earliest; } Public static void main(String args[]){ HomeWorkList hwl = new HomeWorkList(); Scanner sr = new Scanner(System.in); System.out.println(\"Enetr your choice:\"); int choice=sr.nextInt(); System.out.println(\"Please choose your choice\"); System.out.println(\"1.add asignment\" \ \" 2. Remove assignment\" \ \"3.List of assignments\"\ \"4.Find the arelist asignment\" \ \"5. Exit\"); switch (choice) { case 1: hwl.add(); break; case 2: hwl.remove(); break; case 3: hwl.showAssignmnets(); break; case 4: hwl.findEarliest(); break; default: System.out.println(\"Invalid choice\"); } } }.