import java.util.*;

public class App {
	public static void main(String [] args) {
		ArrayList<Integer> ai = new ArrayList<Integer>();
		System.out.println("ai's class: " + ai.getClass());
		ArrayList<String> as = new ArrayList<String>();
		System.out.println("as's class: " + as.getClass());
		ArrayList<int []> aiarr = new ArrayList<int []>();
		System.out.println("aiarr's class: " + aiarr.getClass());
		System.out.println();

		Simple<Integer> si = new Simple<Integer>(5);
		System.out.println("si: " + si);

		Simple<String> ss = new Simple<String>("dog");
		System.out.println("ss: " + ss);

		Simple<Simple<Integer>> ssi = new Simple<Simple<Integer>>(si);
		System.out.println("ssi: " + ssi);
		System.out.println();

		Integer [] intArr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
		System.out.println("contains(intArr, 4) ... " + contains(intArr, 4));
		System.out.println("contains(intArr, 11) ... " + contains(intArr, 11));

		String [] strArr = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10"};
		System.out.println("contans(strArr, \"4\") ... " + contains(strArr, "4"));
		System.out.println("contains(strArr, \"11\") ... " + contains(strArr, "11"));
	}

	static <T>  boolean contains(T[] arr, T val) {
		for (T e : arr)
			if (e.equals(val)) return true;
		return false;
	}
}
