
io.lettuce.core.internal.LettuceSets Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of lettuce-core Show documentation
Show all versions of lettuce-core Show documentation
Advanced and thread-safe Java Redis client for synchronous, asynchronous, and
reactive usage. Supports Cluster, Sentinel, Pipelining, Auto-Reconnect, Codecs
and much more.
The newest version!
package io.lettuce.core.internal;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
/**
* Static utility methods for {@link Set} instances. This class is part of the internal API and may change without further
* notice.
*
* @author Mark Paluch
* @since 4.2
*/
@SuppressWarnings("varargs")
public final class LettuceSets {
/**
* prevent instances.
*/
private LettuceSets() {
}
/**
* Creates a new {@code HashSet} containing all elements from {@code elements}.
*
* @param elements the elements that the set should contain, must not be {@code null}.
* @param the element type
* @return a new {@code HashSet} containing all elements from {@code elements}.
*/
public static Set newHashSet(Collection extends T> elements) {
LettuceAssert.notNull(elements, "Collection must not be null");
HashSet set = new HashSet<>(elements.size());
set.addAll(elements);
return set;
}
/**
* Creates a new {@code HashSet} containing all elements from {@code elements}.
*
* @param elements the elements that the set should contain, must not be {@code null}.
* @param the element type
* @return a new {@code HashSet} containing all elements from {@code elements}.
*/
@SuppressWarnings("unchecked")
public static Set newHashSet(Iterable extends T> elements) {
LettuceAssert.notNull(elements, "Iterable must not be null");
if (elements instanceof Collection>) {
return newHashSet((Collection) elements);
}
Set set = new HashSet<>();
for (T e : elements) {
set.add(e);
}
return set;
}
/**
* Creates a new {@code HashSet} containing all elements from {@code elements}.
*
* @param elements the elements that the set should contain, must not be {@code null}.
* @param the element type
* @return a new {@code HashSet} containing all elements from {@code elements}.
*/
@SafeVarargs
public static Set newHashSet(T... elements) {
LettuceAssert.notNull(elements, "Elements must not be null");
HashSet set = new HashSet<>(elements.length);
Collections.addAll(set, elements);
return set;
}
/**
* Creates a new unmodifiable {@code HashSet} containing all elements from {@code elements}.
*
* @param elements the elements that the set should contain, must not be {@code null}.
* @param the element type
* @return a new {@code HashSet} containing all elements from {@code elements}.
*/
@SafeVarargs
public static Set unmodifiableSet(T... elements) {
return Collections.unmodifiableSet(newHashSet(elements));
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy