


class Oct16 {

	public static void main(String[] args) {

		String[] arr = { "one", "two", "tree", "four" };

		System.out.printf("has two: %b\n", hasElement(arr, "two"));	
		System.out.printf("has five: %b\n", hasElement(arr, "five"));	

		System.out.printf("index two: %d\n", indexOf(arr, "two"));	
		System.out.printf("index five: %d\n", indexOf(arr, "five"));	

		String[] arr2 = { "one", "one", "two" };
		String[] res = removeDuplicates(arr2);
		printArray(res);
		
	
		String[] arr3 = { "one", "two" };
		String[] arr4 = { "two", "three" };
	
		printArray(merge(arr3, arr4));

	}

	static void printArray(String[] arr) {
		for(String elm : arr) {
			System.out.printf("%s ", elm);
		}
		System.out.println();
	}

	static boolean hasElement(String[] arr, String search) {
		for(String elm : arr) {
			if (search.equals(elm)) {
				return true;
			}
		}
		return false;
	}

	static int indexOf(String[] arr, String search) {
		for(int i = 0; i < arr.length; i++) {
			if(arr[i].equals(search)) {
				return i;
			}
		}
		return -1;
	}

	static String[] removeDuplicates(String[] arr) {
		String[] temp = new String[arr.length];
		int counter = 0;

		for(String elm: arr) {
			if (hasElement(temp, elm) == false) {
				temp[counter] = elm;
				counter++;
			}	
		}

		String[] results = new String[counter];
		for(int i = 0; i < results.length; i++) {
			results[i] = temp[i];
		}
		return results;	
	}

	static String[] merge(String[] arr1, String[] arr2) {
		String[] temp = new String[arr1.length + arr2.length];
		int counter = 0;

		for(String elm : arr1) {
			temp[counter++] = elm;
		}
		for(String elm : arr2) {
			temp[counter++] = elm;
		}
	
		return removeDuplicates(temp);
	}

}
