//GenericMethodWithTwoParameters.java

public class GenericMethodWithTwoParameters
{
    //Generic method to determine if an object is in an array
    public static <ValueType, ArrayType extends ValueType> boolean isIn(
        ValueType value,
        ArrayType[] array
    )
    {
        for (int i = 0; i < array.length; i++)
        {
            if (value.equals(array[i]))
            {
                return true;
            }
        }
        return false;
    }

    public static void main(String args[])
    {
        System.out.println();

        //Use isIn() on Integers ...
        Integer nums[] =
        {
            1, 2, 3, 4, 5
        };
        if (isIn(2, nums))
        {
            System.out.println("2 is in nums");
        }
        if (!isIn(7, nums))
        {
            System.out.println("7 is not in nums");
        }

        System.out.println();

        //Use isIn() on Strings ...
        String strs[] =
        {
            "one", "two", "three", "four", "five"
        };
        if (isIn("two", strs))
        {
            System.out.println("two is in strs");
        }
        if (!isIn("seven", strs))
        {
            System.out.println("seven is not in strs");
        }

        //Opps! Won't compile! Types must be compatible.
        //if(isIn("two", nums))
        //    System.out.println("two is in strs");
    }
}
