Problem Statement:
In this project, you are asked to write a Java application that handle a list of students that are enrolled in a certain college.
In your code, you need to demonstrate the ability to effectively use the Java Collection Classes, particularly the LinkedList one and the ability to implement its functionalities (if needed).
We will assume that each student is only represented by her/his first name (just for simplicity and to focus on the use of the data structures themselves).
The names of all students in a small class are stored in a given data file called studentData.txt which is posted on Moodle next to this project statement. Your program must do the following task:
1. Create a LinkedList to be used in storing and handling students' data.
2. Open the given file and read student data into the LinkedList. In doing so, your code needs to maintain the order of student data in the input file.
3. Verify the content of the student data (just read) by displaying them on the monitor in reverse order using a traditional for loop along with appropriate output messages.
4. Invoke various methods of the LinkedList class to retrieve then display the last element then the first element of the list. Display appropriate messages on the monitor.
5. Prompt the use to enter a student name to be removed from the list. Type "Matt".
6. If the entered name is found, remove it from the list then display the size of the list after the removal operation.
7. If the entered name could not found, the program should exit. Display appropriate messages on the monitor in both cases.
8. Display the current list contents using the enhanced for loop along with appropriate output messages.
9. Create a ListIterator object, iter, to be used in accessing the LinkedList contents.
10. Advance the iterator for three positions then display the current list item (using iterator method and NOT list method).
11. Insert a new student called "Edward" at the current iterator position then display the current list contents using the compact form to be used from this point on for any list content display. Hint, use the implicit toString().
12. Execute the iter.previous() method followed by using the iter.set() method to set the current element to George. Then, display the current list contents.
13. Execute the iter.previous() method followed by the remove() method then display the current list contents.
14. In a separate file, create a helper class called HelpLists. This class need to have the code for two methods described below:
A.) public void rotateRight(LinkedList studentNames, int n). This method receives a LinkedList as its parameter then rotate the list items n positions to the right.
B.) public int LocateItem(LinkedList studentNames, String name ). This method receives a LinkedList and a student name as its parameters then it return the location of the last occurrence of the given student name if found. The method return -1 if the passed name is not found.
15. In your main class, create an object of type HelpLists class then use it in the following.
16. Invoke the rotateRight() method to rotate the content of the list three positions to the right then display the current list contents.
17. Invoke the rotateRight() method one more time to rotate the list by six positions then display the current list contents. Verify that the list is now back to its normal order.
18. Invoke the locateItem() method in order to find the location of the student named "Robert". If found, display its location along with appropriate messages. Otherwise, indicate that the student was not found.
studentData.txt file:
AbdulAllah
Bonnie
Daniel
Gary
Jared
Lydia
Matt
Mike
Robert
Sean