public class SortedList2<T extends Comparable<T>> {
private ComparableNode<T> first, last;
public SortedList2(){
first = null;
last = null;
}
public void insert(T key) {
ComparableNode<T> node = new ComparableNode<>(key);
if (first == null) {
first = node;
last = node;
} else {
ComparableNode<T> current=first;
while (current.getNext() != null &&
node.compareTo(current.getNext()) > 0) {
current=current.getNext();
}
if (current.getNext() == null) {
current.setNext(node);
} else {
node.setNext(current.getNext());
current.setNext(node);
}
}
}
public void print(){
for (ComparableNode<T> cursor=first; cursor != null ;
cursor=cursor.getNext()){
System.out.println(cursor.getData());
}
}
public static void main(String[] args){
String[] names={"bob", "rudolph", "dasher", "prancer", "dancer", "mary","joe","fred"};
SortedList2<String> a=new SortedList2<>();
for (int i=0; i < names.length; i++){
a.insert(names[i]);
}
a.print();
}
}