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); } }
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); } }