Implement and test a generic binary search. Note that your test program must use at least 2 types of data to prove that bsearch is generic.
Templating means that instead of passing a parameter such as Integer you pass a parameter T. (T is a type variable and can be named anything). This means that you can call bsearch with different types of objects.
Pseudo Code Example:
Bsearch(String) Bsearch(Integer)
This means you do not have to write 2 separate bsearch methods, one for String and one for Integer.
The heart of how this is accomplished is the Comparable interface. If a class implements Comparable, it defines less than, greater than and equals. Also, by making the type variable you can call with any object that implements Comparable.
Example Code:
public class Searches
{
public static int bsearch(T[] a, int first, int last, T key)
{
called in main as:
result = Searches.bsearch(IntegerArray,0, 10, key);
result = Searchesbsearch(StringArray,0,10,key);