private static <T> Set<T> from(Set<T> set) { switch (set.size()) { case 0: return Collections.emptySet(); case 1: return new ImmutableTinySet.Singleton<T>(set); case 2: return new ImmutableTinySet.Doubleton<T>(set); case 3: return new ImmutableTinySet.Tripleton<T>(set); default: return new ImmutableHashSet<>(set); } }
@Override public Iterator<T> iterator() { return new Iterators.IndexIterator<T>(this.size()) { @Override T getElement(int position) { switch (position) { case 0: return element1; case 1: return element2; case 2: return element3; default: throw new NoSuchElementException(); } } }; } }
@Override public Iterator<T> iterator() { return new Iterators.IndexIterator<T>(this.size()) { @Override T getElement(int position) { switch (position) { case 0: return element1; case 1: return element2; case 2: return element3; default: throw new NoSuchElementException(); } } }; } }
@Override public Iterator<T> iterator() { return new Iterators.IndexIterator<T>(this.size()) { @Override T getElement(int position) { switch (position) { case 0: return element1; case 1: return element2; case 2: return element3; default: throw new NoSuchElementException(); } } }; } }
@Override public Iterator<T> iterator() { return new Iterators.IndexIterator<T>(this.size()) { @Override T getElement(int position) { switch (position) { case 0: return element1; case 1: return element2; case 2: return element3; default: throw new NoSuchElementException(); } } }; } }
@Override public Iterator<T> iterator() { return new Iterators.IndexIterator<T>(this.size()) { @Override T getElement(int position) { switch (position) { case 0: return element1; case 1: return element2; case 2: return element3; default: throw new NoSuchElementException(); } } }; } }
@Override public Iterator<T> iterator() { return new Iterators.IndexIterator<T>(this.size()) { @Override T getElement(int position) { switch (position) { case 0: return element1; case 1: return element2; case 2: return element3; default: throw new NoSuchElementException(); } } }; } }
private static <T> Set<T> from(Set<T> set) { switch (set.size()) { case 0: return Collections.emptySet(); case 1: return new ImmutableTinySet.Singleton<T>(set); case 2: return new ImmutableTinySet.Doubleton<T>(set); case 3: return new ImmutableTinySet.Tripleton<T>(set); default: return new ImmutableHashSet<>(set); } }
private static <T> Set<T> from(Set<T> set) { switch (set.size()) { case 0: return Collections.emptySet(); case 1: return new ImmutableTinySet.Singleton<T>(set); case 2: return new ImmutableTinySet.Doubleton<T>(set); case 3: return new ImmutableTinySet.Tripleton<T>(set); default: return new ImmutableHashSet<>(set); } }
private static <T> Set<T> from(Set<T> set) { switch (set.size()) { case 0: return Collections.emptySet(); case 1: return new ImmutableTinySet.Singleton<T>(set); case 2: return new ImmutableTinySet.Doubleton<T>(set); case 3: return new ImmutableTinySet.Tripleton<T>(set); default: return new ImmutableHashSet<>(set); } }
private static <T> Set<T> from(Set<T> set) { switch (set.size()) { case 0: return Collections.emptySet(); case 1: return new ImmutableTinySet.Singleton<T>(set); case 2: return new ImmutableTinySet.Doubleton<T>(set); case 3: return new ImmutableTinySet.Tripleton<T>(set); default: return new ImmutableHashSet<>(set); } }
private static <T> Set<T> from(Set<T> set) { switch (set.size()) { case 0: return Collections.emptySet(); case 1: return new ImmutableTinySet.Singleton<T>(set); case 2: return new ImmutableTinySet.Doubleton<T>(set); case 3: return new ImmutableTinySet.Tripleton<T>(set); default: return new ImmutableHashSet<>(set); } }