Implement a singly linked list in ASCENDING sorted order. (You should not use any of Java built-in Collection classes). The data value in the node is a Song object. The sorting is based on the length of song.
Your Driver file must read song’s information from a Songs.txt file. The data file has a number of lines. Each line is in the format of “SongTitle@LengthOftheSong”.
Assumptions: No song has same title and length.
The linked list class must comprise methods to:
a) return the size of the linked list
public int size( ) { …}
b) print the linked list
public void print( ) { … }
c) test if x is contained in the linked list.
public boolean contains (E x) { …}
d) add a value x if it is not already contained in the linked list.
public boolean add(E x)
e) remove a value x if it is contained in the linked list.
public boolean remove(E x) { …}
Note:
1) The linked list must be generics.
2) You need to write equals method in Song class to check if two song objects are equivalent or not. If the title AND the length are all similar, then the method returns true.
3) You as well require writing compareTo method in the Song class to compare two song’s lengths.
4) The song objects are sorted by the lengths in the linked list.