Reference no: EM131266145
Assignment
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);
Example Output:
--------------------Configuration: --------------------
Integer test array contains:
0 2 4 6 8 10 12 14 16 18
-3 is not in the array.
-2 is not in the array.
-1 is not in the array.
0 is at index 0
1 is not in the array.
2 is at index 1
3 is not in the array.
4 is at index 2
String test array contains:
apples oranges peaches strawberries watermelons
apples is at index 0
plums is not in the array.
Process completed.