Generics
The generics feature was introduced into Java in version 5. To start with an example, our Sortable interface until now was this:
package packt.java9.by.example.ch03; 
public interface SortableCollection { 
    Object get(int i); 
    int size(); 
}After introducing generics, it will be as follows:
package packt.java9.by.example.ch03; 
public interface SortableCollection<E> { 
    E get(int i); 
    int size(); 
}The E identifier denotes a type. It can be any type. It says that a class is a sortable collection if it implements the interface, namely the two methods— size and get. The get method should return something that is of type E, whatever E is. This may not make too much sense up until now, but you will soon get the point. After all, generics is a difficult topic.
The Sort interface will become the following:
package packt.java9.by.example.ch03; 
import java.util.Comparator; 
public interface Sort<E> { 
    void sort(SortableCollection<E> collection); 
    void...