aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/mammoth/internal/util/Sets.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/zwobble/mammoth/internal/util/Sets.java')
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/util/Sets.java36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/main/java/org/zwobble/mammoth/internal/util/Sets.java b/src/main/java/org/zwobble/mammoth/internal/util/Sets.java
new file mode 100644
index 0000000..c979740
--- /dev/null
+++ b/src/main/java/org/zwobble/mammoth/internal/util/Sets.java
@@ -0,0 +1,36 @@
+package org.zwobble.mammoth.internal.util;
+
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+import static java.util.Arrays.asList;
+import static org.zwobble.mammoth.internal.util.Iterables.stream;
+
+public class Sets {
+ public static <T> Set<T> set() {
+ return Collections.emptySet();
+ }
+
+ public static <T> Set<T> set(T value1) {
+ return Collections.singleton(value1);
+ }
+
+ @SafeVarargs
+ public static <T> Set<T> set(T... values) {
+ HashSet<T> set = new HashSet<>();
+ set.addAll(asList(values));
+ return set;
+ }
+
+ public static <T> Set<T> difference(Set<? extends T> set1, Set<? extends T> set2) {
+ HashSet<T> result = new HashSet<>(set1);
+ result.removeAll(set2);
+ return result;
+ }
+
+ public static <T> Set<T> toSet(Iterable<T> iterable) {
+ return stream(iterable).collect(Collectors.toSet());
+ }
+}