CECS 274 Project 3 Linked Lists Use the Java LinkedList and ListIterator classes. You will read the text of the novel Emma by Jane Austen and find the most frequently occurring word. Convert to lowercase because we do not want "The" and "the", etc. to be considered different. Here is the code to read the file and get the words Scanner in = new Scanner(new File("emma.txt")); in.useDelimiter("[^a-zA-Z]+"); while (in.hasNext()){ String s = in.next().toLowerCase(); .... } When done with the scanner, execute in.close(). Import File and FileNotFoundException from the java.io package. Whichever method creates the File needs to add "throws FileNotFoundException" after the () for parameters and the { to start the body of the method. For the code I have shown above, emma.txt is in the same folder as the program. (In Eclipse there may be an addition folder on the path that needs to be added, "src/emma.txt") Create a Word class that has a string and a count. Use a LinkedList of Word objects. When you read a word from the novel check if it is in the list. If so increment the count. If not add it with count 1. After processing all of the words find the word with the highest count. (You do not need to check for ties.) When adding a word in alphabetical order use the String compareTo method that for s1.compareTo(s2) returns a negative value if s1s2. Remember that adding to the list directly adds at the end which is not what we want. Adding at the list iterator cursor will add just after the last item returned by next(), but you could use previous() to get to the position before the item returned. Boundary conditions require careful thinking. For example how will you handle an empty list, a word that is alphabetically less than any previous word, or a word that is alphabetically greater than any previous word. Time your code (for comparison with other methods). System.currentTimeMillis() returns the current time in milliseconds since Jan. 1, 1970 as a value of type long. Get this value at the end of execution and at the beginning and subtract to get the elapsed time. For your test run, output the number of items in the list, the highest freqency word with its frequency, and the time taken. emma.txt is on the course site. When developing the program use a small file of a few lines at most and only use Emma when you are satisfied that your program works. Post the code and run on Beachboard.