guava/src/com/google/common/collect/ImmutableSet.java
public static <E> ImmutableSet<E> copyOf(E[] elements) {
    switch (elements.length) {
      case 0:
        return of();
      case 1:
        return of(elements[0]);
      default:
        return constructUnknownDuplication(elements.length, elements.clone());
    }
  }
public static <E> ImmutableSet<E> copyOf(E[] elements) {
    switch (elements.length) {
      case 0:
        return of();
      case 1:
        return of(elements[0]);
      default:
        return constructUnknownDuplication(elements.length, elements.clone());
    }
  }
public static < E > ImmutableSet < E > copyOf ( E [ ] elements ) { switch ( elements . length ) { case 0 : return of ( ) ; case 1 : return of ( elements [ 0 ] ) ; default : return constructUnknownDuplication ( elements . length , elements . clone ( ) ) ; } }
Returns an immutable set containing each of {@code elements}, minus duplicates, in the order
each appears first in the source array.

@throws NullPointerException if any of {@code elements} is null
@since 3.0
Returns an immutable set containing each of { @code elements } minus duplicates in the order each appears first in the source array .