JAVA. I need help implementing the add methods in the instructions with the first and last node references. It cannot have the private Node getNodeAt(int new position). Thanks in advance. Implementation of the SinglyLinkedList that also provides an iterator. 1. ListInferface.java is given on Canvas / Files / Source Code 2. Implement the List ADT using singly linked list with the first and last node references. The class name is SinglyLinkedList. a. Only implement the following methods: +add(T newEntry):void + add(int newPosition, T newEntry):void b. Other methods will throw UnsupportedOperationException( "name to be implemented") where name is the method name. c. Implement an iterator using an inner class. + hasNext():boolean +next():T d. Write a simple application named ListIteratorDemo that will create a list of integers and use the iterator to output this list. Required I/O: List F. Last list of integers one per line Turn in: 1. There should be 4 Java source code and the report files: ListInterface.java SinglyLinkedList.java ListIteratordemo.java Compress these files into a single zip file and submit it on Canvas with the following name: hw1-s#.zip where # is your section #, 2 or 3. For example: p2-s2.zip, p2-s3.zip NO package. No folder inside the zip file. unzip hw1-s2.zip javac ListIteratorDemo.java java ListIteratorDemo.