### Question:
ArrayUtils { @SafeVarargs @SuppressWarnings("unchecked") public final static <T> T[] copyArrayExcept(T[] array, T... except) { final List<T> values = CollectionFactory.newList(); for (final T item : array) { if (Arrays.binarySearch(except, item, new Comparator<T>() { @Override public int compare(Object o1, Object o2) { return (o1 == o2 ? 1 : 0); } }) >= 0) { values.add(item); } } return (T[]) Arrays.copyOf(values.toArray(), values.size(), array.getClass()); }  @SafeVarargs @SuppressWarnings("unchecked") final static T[] copyArrayExcept(T[] array, T... except); final static boolean contains(T[] array, T expected); static String[] createArgumentArray(StringTokenizer tokenizer);  }### Answer:
@Test public void testCopyArrayExcept() { final TestClass objA = new TestClass("a"); final TestClass objB = new TestClass("b"); final TestClass objC = new TestClass("c"); TestClass[] arr = new TestClass[] { objA, objB, objC }; TestClass[] selected = copyArrayExcept(arr, objB); System.out.println(Arrays.toString(selected)); Assert.assertTrue(Arrays.equals(new TestClass[] { objA, objC }, selected)); }