public class LinearSearchGeneric {
	// post: returns index of value in a, or -1 if not found
	// Note the <E> between static and int: a generic method!
	public static <E> int linearSearch(E a[], E value) {
		for (int i = 0; i < a.length; i++) {
			System.out.println("compare");
			if (a[i].equals(value)) {
				return i;
			}
		}
		return -1;
	}
	public static void main(String args[]) {
		// search a String array
		System.out.println(linearSearch(args, "cow"));
		// search an Integer array
		Integer[] a = new Integer[10001];
		for (int i = 0; i < 10001; i++) {
			a[i] = i;
		}
		System.out.println("Linear Search(5000): " + linearSearch(a, 5000));
		System.out.println("Linear Search(1993): " + linearSearch(a, 1993));
		System.out.println("Linear Search(1): " + linearSearch(a, 1));
	}
}
