Fill in the ListLiIMP.java with the necessary data fields and method bodies. As you complete a method review it and run any appropriate JUnit tests.
You must use the linked list implementation to store the chars of a ListLiIMP, therefore you will need to write a Link class. This is the book strategy that has head, cur, and tail pointers, and has a dummy head Link and a dummy tail Link.
ListADT 9/23/21, 10:20 AMListADT Page 1 of 4file:///Users/acsiochi/Dropbox/Work%20(Selective%20Sync%20Conflict)/teaching/Classes/classesGit/270FA21/asg2-listadt/doc/ListADT.html PACKAGE CLASS USE TREE DEPRECATED INDEX HELP PREV CLASS NEXT CLASS FRAMES NO FRAMES ALL CLASSES SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD Interface ListADT public interface ListADT ListADT is a cursor based list of char. Version: 20210921 Author: acsiochi Method Summary Modifier and Type Method and Description boolean equals(java.lang.Object o) Determines if o is equal to this ListADT. char get() Get the current element. void insert(int c) Adds c to this ListADT at the current position. boolean next() Moves the cursor one position towards the tail of the list. boolean prev() Moves the cursor one position towards the head of the list. void remove() Removes the current element from this list. char[] toArray(int s, int f) Produces an array containing the list elements from position s to position f, All Methods Instance Methods Abstract Methods file:///Users/acsiochi/Dropbox/Work%20(Selective%20Sync%20Conflict)/teaching/Classes/classesGit/270FA21/asg2-listadt/doc/package-summary.html file:///Users/acsiochi/Dropbox/Work%20(Selective%20Sync%20Conflict)/teaching/Classes/classesGit/270FA21/asg2-listadt/doc/class-use/ListADT.html file:///Users/acsiochi/Dropbox/Work%20(Selective%20Sync%20Conflict)/teaching/Classes/classesGit/270FA21/asg2-listadt/doc/package-tree.html file:///Users/acsiochi/Dropbox/Work%20(Selective%20Sync%20Conflict)/teaching/Classes/classesGit/270FA21/asg2-listadt/doc/deprecated-list.html file:///Users/acsiochi/Dropbox/Work%20(Selective%20Sync%20Conflict)/teaching/Classes/classesGit/270FA21/asg2-listadt/doc/index-files/index-1.html file:///Users/acsiochi/Dropbox/Work%20(Selective%20Sync%20Conflict)/teaching/Classes/classesGit/270FA21/asg2-listadt/doc/help-doc.html file:///Users/acsiochi/Dropbox/Work%20(Selective%20Sync%20Conflict)/teaching/Classes/classesGit/270FA21/asg2-listadt/doc/index.html?ListADT.html file:///Users/acsiochi/Dropbox/Work%20(Selective%20Sync%20Conflict)/teaching/Classes/classesGit/270FA21/asg2-listadt/doc/ListADT.html file:///Users/acsiochi/Dropbox/Work%20(Selective%20Sync%20Conflict)/teaching/Classes/classesGit/270FA21/asg2-listadt/doc/allclasses-noframe.html javascript:show(2); javascript:show(4); Antonio Siochi Antonio Siochi char 9/23/21, 10:20 AMListADT Page 2 of 4file:///Users/acsiochi/Dropbox/Work%20(Selective%20Sync%20Conflict)/teaching/Classes/classesGit/270FA21/asg2-listadt/doc/ListADT.html not including f. java.lang.String toString() Gets a String representation of the state of this list. Method Detail equals boolean equals(java.lang.Object o) Determines if o is equal to this ListADT. o can't be null and must be an object of a class that implements ListADT. Overrides: equals in class java.lang.Object Parameters: o - reference to object to check for equality Returns: true if this equals o, false else get char get() throws java.util.NoSuchElementException Get the current element. If it is not possible to do so, throw a NoSuchElementException. Returns: the current element Throws: java.util.NoSuchElementException - if it is not possible to get insert void insert(int c) Adds c to this ListADT at the current position. If it not possible to add then just return. Parameters: Antonio Siochi Antonio Siochi char 9/23/21, 10:20 AMListADT Page 3 of 4file:///Users/acsiochi/Dropbox/Work%20(Selective%20Sync%20Conflict)/teaching/Classes/classesGit/270FA21/asg2-listadt/doc/ListADT.html c - char to add next boolean next() Moves the cursor one position towards the tail of the list. Returns: true if it was possible to move, false else prev boolean prev() Moves the cursor one position towards the head of the list. Returns: true if it was possible to move, false else remove void remove() Removes the current element from this list. If it is not possible to do so then just return (silently fail). toString java.lang.String toString() Gets a String representation of the state of this list. This String starts with a "<" and="" ends="" with="" a="" "="">". In between are the elements of this list separated by commas, except that a pipe replaces the comma before the current element. There are no spaces after the "<", before="" the="" "="">", nor around the commas nor the pipe. Examples of valid String representations are shown here:<|> Overrides: toString in class java.lang.Object 9/23/21, 10:20 AMListADT Page 4 of 4file:///Users/acsiochi/Dropbox/Work%20(Selective%20Sync%20Conflict)/teaching/Classes/classesGit/270FA21/asg2-listadt/doc/ListADT.html PACKAGE CLASS USE TREE DEPRECATED INDEX HELP PREV CLASS NEXT CLASS FRAMES NO FRAMES ALL CLASSES SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD Returns: string representation of the list's state toArray char[] toArray(int s, int f) Produces an array containing the list elements from position s to position f, not including f. Calling toArray(1,3) on the list with state will produce the array {b, c}. No change is made to the list. Parameters: s - starting position f - finishing position (not included in the returned array) Returns: reference to array containing the copied elements. file:///Users/acsiochi/Dropbox/Work%20(Selective%20Sync%20Conflict)/teaching/Classes/classesGit/270FA21/asg2-listadt/doc/package-summary.html file:///Users/acsiochi/Dropbox/Work%20(Selective%20Sync%20Conflict)/teaching/Classes/classesGit/270FA21/asg2-listadt/doc/class-use/ListADT.html file:///Users/acsiochi/Dropbox/Work%20(Selective%20Sync%20Conflict)/teaching/Classes/classesGit/270FA21/asg2-listadt/doc/package-tree.html file:///Users/acsiochi/Dropbox/Work%20(Selective%20Sync%20Conflict)/teaching/Classes/classesGit/270FA21/asg2-listadt/doc/deprecated-list.html file:///Users/acsiochi/Dropbox/Work%20(Selective%20Sync%20Conflict)/teaching/Classes/classesGit/270FA21/asg2-listadt/doc/index-files/index-1.html file:///Users/acsiochi/Dropbox/Work%20(Selective%20Sync%20Conflict)/teaching/Classes/classesGit/270FA21/asg2-listadt/doc/help-doc.html file:///Users/acsiochi/Dropbox/Work%20(Selective%20Sync%20Conflict)/teaching/Classes/classesGit/270FA21/asg2-listadt/doc/index.html?ListADT.html file:///Users/acsiochi/Dropbox/Work%20(Selective%20Sync%20Conflict)/teaching/Classes/classesGit/270FA21/asg2-listadt/doc/ListADT.html file:///Users/acsiochi/Dropbox/Work%20(Selective%20Sync%20Conflict)/teaching/Classes/classesGit/270FA21/asg2-listadt/doc/allclasses-noframe.html Antonio Siochi Antonio Siochi|>",>">